blocs/admin: サイドメニューの設定
blocs/admin: サイドメニューの設定
サイドメニューは config/menu.php で定義します。
定義ファイルの形式
- メニューのルート名は
root を使用
sub にサブメニュー名を指定して階層構造を作成(最大3階層)
リンク先の設定
| キー項目 |
説明 |
| name |
メニューのルート名 |
| argv |
ルート取得時の引数 |
| url |
リンク先のURL(直接指定) |
| sub |
サブメニューのメニュー名 |
見栄えの設定
| キー項目 |
説明 |
| icon |
Font Awesomeのアイコン名 |
| lang |
多言語対応ラベル(言語ファイルを参照) |
| label |
ラベルを直接指定 |
| line |
第1階層のみ:メニューの上に区切り線を表示 |
| index |
第1階層のみ:メニューの上に小見出しを表示 |
表示条件の設定
| キー項目 |
説明 |
| role |
true にすると権限がなくても常に表示 |
| guard |
指定した Guard 条件を満たす場合のみ表示 |
サンプル
<?php
return [
'root' => [
0 => [
'name' => 'home',
'lang' => 'template:admin_menu_home',
'icon' => 'fa-home',
'role' => true,
],
1 => [
'line' => true,
'lang' => 'template:admin_menu_top',
'icon' => 'fa-cogs',
'sub' => 'admin_menu',
'role' => true,
],
],
'admin_menu' => [
0 => [
'name' => 'admin.user.index',
'label' => 'ユーザー管理',
'icon' => 'fa-users',
],
],
];
Guardによるサイドメニューの表示制御
guard を設定することで、認証ガードに応じてメニューを出し分けられます。guard 未設定の場合はすべてのGuardで表示されます。
<?php
return [
'root' => [
0 => [
'name' => 'home',
'label' => '共通メニュー',
'icon' => 'fa-home',
'role' => true,
],
1 => [
'name' => 'home',
'label' => '管理者メニュー',
'icon' => 'fa-cogs',
'role' => true,
'guard' => 'web',
],
2 => [
'name' => 'home',
'label' => 'メンバーメニュー',
'icon' => 'fa-cogs',
'role' => true,
'guard' => 'member',
],
],
];