例えばメニューリストで現在表示しているページの部分だけ装飾を変えたい時、cssのclassに'active'を付け加えたい等といった感じの時にNamedRoute
だと楽なのだけど、 Route::controller
で指定されてる時だとメソッドに名前をつける方法がドキュメントにものってなくてわからなかったのでソースを追っかけてわかったのでメモ。ちなみに、Laravel4.2以降な気配。
routes.php
<?php
Route::controller( 'admin', 'adminController', [
'getIndex' => 'admin_index',
'getUsers' => 'admin_users',
'メソッド名' => '名前'
] );
メソッド名は省略せずに書く必要有り。
こうやればメニュー画面などで使えるようになる。
menu.ctp
<ul>
<li class="<?= Route::currentRouteNamed('admin_index') ? ' active' : '' ?>"><a href="/admin/">管理画面</a></li>
<li class="<?= Route::currentRouteNamed('admin_users') ? ' active' : '' ?>"><a href="/admin/users">全ユーザ一覧</a></li>
</ul>