帮助函数
<h1>帮助函数</h1>
<h3>admin_redirect</h3>
<p>> Since <code>v2.1.7-beta</code></p>
<p>跳转到指定<code>url</code>,此函数可用于代替<code>redirect</code>函数,支持<code>pjax</code>以及<code>ajax</code>请求</p>
<pre><code class="language-php">// 不需要添加admin前缀
return admin_redirect('auth/users');
// 如果想要跳转到非admin前缀的链接,需要传递完整url链接
return admin_redirect(url('users'));</code></pre>
<h3>admin_exist</h3>
<p><code>admin_exist</code> 用于中断程序执行,并响应数据到浏览器进行显示,用于代替 <code>exit</code> 和 <code>die</code>,下面简单介绍下用法</p>
<p>用法1,返回 <code>Content</code> 布局对象,此用法可用于返回错误信息显示到前端</p>
<pre><code class="language-php">use Dcat\Admin\Widgets\Alert;
use Dcat\Admin\Layout\Content;
// 中断程序,并显示自定义页面到前端
admin_exit(
Content::make()
-&gt;title('标题')
-&gt;description('描述')
-&gt;body('页面内容1')
-&gt;body(Alert::make('服务器出错了~', 'Error')-&gt;danger())
);</code></pre>
<p>效果如下</p>
<p><img src="https://cdn.learnku.com/uploads/images/202101/11/38389/FLg6C7kwRq.png!large" alt="" /></p>
<p>用法2,返回 <code>json</code> 格式数据,此用法经常用于表单提交数据的<code>api</code>请求拦截,或<code>Action</code>的<code>api</code>请求拦截</p>
<pre><code class="language-php">use Dcat\Admin\Admin;
admin_exit(
Admin::json()
-&gt;success('成功了')
-&gt;refresh()
-&gt;data([
...
])
);
// 当然也可以直接响应数组
admin_exit([
...
]);</code></pre>
<p>用法3,直接相应<code>Response</code>对象或字符串</p>
<pre><code class="language-php">admin_exit('Hello world');
admin_exit(response('Hello world', 500));</code></pre>
<h3>admin_color</h3>
<p>获取内置颜色,关于主题颜色更多用法请参考<a href="theme.md#color">主题 - 颜色</a>章节</p>
<pre><code class="language-php">// 获取主题色的三种方式
$primary = admin_color('primary');
$primary = admin_color()-&gt;get('primary');
$primary = admin_color()-&gt;primary();
$color = admin_color();
$color-&gt;lighten('primary', 10);</code></pre>
<h3>admin_js</h3>
<p>可以在任意位置引入<code>js</code>文件,更多用法参考<a href="assets.md">静态资源</a>章节</p>
<pre><code class="language-php">admin_js(['@admin/xxx.js']);</code></pre>
<h3>admin_css</h3>
<p>可以在任意位置引入<code>css</code>文件,更多用法参考<a href="assets.md">静态资源</a>章节</p>
<pre><code class="language-php">admin_css(['@admin/xxx.css']);</code></pre>
<h3>admin_require_assets</h3>
<p>可以在任意位置引入静态资源组件,更多用法参考<a href="assets.md">静态资源</a>章节</p>
<pre><code class="language-php">admin_require_assets(['@datime']);</code></pre>
<h3>admin_path</h3>
<p>获取<code>Dcat Admin</code>安装的应用路径,默认目录是<code>app/Admin</code>:</p>
<pre><code class="language-php">$bootstrap = admin_path('bootstrap.php');</code></pre>
<h3>admin_url</h3>
<p>获取<code>Dcat Admin</code>应用的路由完整url:</p>
<pre><code class="language-php">// 返回: http://localhost/admin/auth/users
$url = admin_url('auth/users');</code></pre>
<h3>admin_route</h3>
<p>根据别名获取URL</p>
<p><code>app/Admin/routes.php</code>路由注册如下</p>
<pre><code class="language-php">Route::group([
'prefix' =&gt; config('admin.route.prefix'),
'namespace' =&gt; config('admin.route.namespace'),
'middleware' =&gt; config('admin.route.middleware'),
], function (Router $router) {
// 设置别名
$router-&gt;resource('users', 'UserController', [
'names' =&gt; ['index' =&gt; 'my-users'],
]);
});</code></pre>
<p>根据别名获取URL</p>
<pre><code class="language-php">// 获取url
$url = admin_route('my-users');
// 判断路由
$isUsers = request()-&gt;routeIs(admin_route_name('users'));</code></pre>
<h3>admin_base_path</h3>
<p>获取<code>Dcat Admin</code>应用的路由路径:</p>
<pre><code class="language-php">// 返回: /admin/auth/users
$path = admin_base_path('auth/users');</code></pre>
<h3>admin_toastr</h3>
<p>在页面刷新后弹出一个<code>toastr</code>提示窗,参数:</p>
<ul>
<li><code>$message</code> 提示窗内容</li>
<li><code>$type</code> 提示窗类型,默认<code>success</code>,支持<code>success</code>、<code>info</code>、<code>warning</code>、<code>error</code></li>
<li><code>$options</code> toastr配置参数</li>
</ul>
<pre><code class="language-php">admin_alert('更新成功', 'success');</code></pre>
<h3>admin_success</h3>
<p>在页面刷新后在页面顶部显示一个成功消息:</p>
<pre><code class="language-php">admin_success('标题', '成功了');</code></pre>
<h3>admin_error</h3>
<p>在页面刷新后在页面顶部显示一个错误消息:</p>
<pre><code class="language-php">admin_error('标题', '失败了');</code></pre>
<h3>admin_warning</h3>
<p>在页面刷新后在页面顶部显示一个警告消息:</p>
<pre><code class="language-php">admin_warning('标题', '警告');</code></pre>
<h3>admin_info</h3>
<p>在页面刷新后在页面顶部显示一个提示消息:</p>
<pre><code class="language-php">admin_info('标题', '内容');</code></pre>
<h3>admin_asset</h3>
<p>获取静态资源的完整链接:</p>
<p>> {tip} 此函数支持别名.</p>
<pre><code class="language-html">// 引入css
&lt;link rel=&quot;stylesheet&quot; href=&quot;{{ admin_asset(&quot;@admin/dcat-admin/main.min.css&quot;) }}&quot;&gt;
// 引入js
&lt;script src=&quot;{{ admin_asset('@admin/dcat-admin/main.min.js')}}&quot;&gt;&lt;/script&gt;</code></pre>
<h3>admin_trans_field</h3>
<p>翻译当前控制器的字段,控制器名称去除<code>Controller</code>后缀之后再转化为小写中划线就是语言包的名称,如:控制器名称为<code>UserProfileController</code>,则对应的语言包名称为<code>user-profile.php</code>。</p>
<p>> {tip} 如果当前控制器对应的语言包中不存在该字段翻译,则会去公共翻译文件<code>global.php</code>中查找。</p>
<pre><code class="language-php">$name = admin_trans_field('name');
$createdAt = admin_trans_field('created_at');</code></pre>
<p>语言包内容如下:</p>
<pre><code class="language-php">return [
'fields' =&gt; [
'name' =&gt; '名称',
'created_at' =&gt; '创建时间',
],
];</code></pre>
<h3>admin_trans_label</h3>
<p>翻译当前控制器的自定义内容,控制器名称去除<code>Controller</code>后缀之后再转化为小写中划线就是语言包的名称,如:控制器名称为<code>UserProfileController</code>,则对应的语言包名称为<code>user-profile.php</code>。</p>
<p>> {tip} 如果当前控制器对应的语言包中不存在该字段翻译,则会去公共翻译文件<code>global.php</code>中查找。</p>
<pre><code class="language-php">$user = admin_trans_label('User');</code></pre>
<p>语言包内容如下:</p>
<pre><code class="language-php">return [
'labels' =&gt; [
'User' =&gt; '管理员',
],
];</code></pre>
<h3>admin_trans_option</h3>
<p>翻译当前控制器的字段选项值,控制器名称去除<code>Controller</code>后缀之后再转化为小写中划线就是语言包的名称,如:控制器名称为<code>UserProfileController</code>,则对应的语言包名称为<code>user-profile.php</code>。</p>
<p>> {tip} 如果当前控制器对应的语言包中不存在该字段翻译,则会去公共翻译文件<code>global.php</code>中查找。</p>
<pre><code class="language-php">$status = admin_trans_option(1, 'status');</code></pre>
<p>语言包内容如下:</p>
<pre><code class="language-php">return [
'options' =&gt; [
'status' =&gt; [
1 =&gt; '启用',
0 =&gt; '禁用'
],
],
];</code></pre>