菜单
<h1>菜单</h1>
<p><code>Dcat Admin</code>的菜单是保存在数据表<code>admin_menu</code>上的,开发者可以在后台菜单管理页面对菜单进行管理。</p>
<h3>菜单权限</h3>
<p>每个菜单都可以与权限或角色进行绑定,如果不设置则为公共菜单,所有账号都能看到。</p>
<p>通过<code>admin.menu.bind_permission</code>配置参数可以设置是否允许绑定权限。
> {tip} 默认一个菜单最多能绑定一个权限和一个角色。</p>
<h3>菜单翻译</h3>
<p>在您的语言文件的menu_titles索引中追加菜单标题。 例如“工作单位”标题:</p>
<p>在<code>resources/lang/{当前语言}/admin.php</code>中</p>
<pre><code class="language-php">...
'menu_titles' =&gt; [
'work_units' =&gt; 'Unidades de trabajo'
],</code></pre>
<h3>菜单缓存</h3>
<p>通过<code>admin.menu.cache.enable</code>配置参数可以开启或关闭菜单缓存,建议开启。</p>
<h3>通过Menu::add接口动态添加菜单</h3>
<p><code>Dcat Admin</code>还提供了通过数组的方式在代码中即时添加菜单。</p>
<p>在<code>app\Admin\bootstrap.php</code>中添加如下代码:</p>
<pre><code class="language-php">&lt;?php
use Dcat\Admin\Admin;
use Dcat\Admin\Layout\Menu;
Admin::menu(function (Menu $menu) {
$menu-&gt;add([
[
'id' =&gt; '1', // 此id只要保证当前的数组中是唯一的即可
'title' =&gt; '测试菜单',
'icon' =&gt; 'fa-file-text-o',
'uri' =&gt; '',
'parent_id' =&gt; 0,
'permission_id' =&gt; 'test', // 与权限绑定
'roles' =&gt; 'test-roles', // 与角色绑定
],
[
'id' =&gt; '2', // 此id只要保证当前的数组中是唯一的即可
'title' =&gt; '测试菜单2',
'icon' =&gt; 'fa-file-text-o',
'uri' =&gt; 'test-menu2',
'parent_id' =&gt; '1',
],
]);
});
</code></pre>
<h3>为何没有权限的菜单不会自动隐藏?</h3>
<p>这个问题是因为你没有给菜单绑定权限或者角色,给你想要无权不显示的菜单绑定权限或者角色即可。</p>