Laravelでアクション名って言い方がただしいかはわからんけど、
時々、コントローラ名やアクション名が欲しくなったりする。
例えば、権限でコントローラやアクションを制御したかったりする…
「route\web.php」で、「Route::get(‘/user’, ‘UserController@index’);」の「UserController@index」を @ でちぎって前後を取れればよいわけで、調べたら、「Route::currentRouteAction()」で取れるらしい。
で、「dd(Route::currentRouteAction()」を実行してみると
"App\Http\Controllers\UserController@index"
なるほどね。 @ の後がアクション名、 \ でちぎって最後の文字列がコントローラ名でいけそうね。
$tmp1 = explode("@", Route::currentRouteAction());
$tmp2 = explode('\\', $tmp1[0]);
$actionName = $tmp1[1]; // アクション名
$controllerName = end($tmp2); // コントローラ名
トレイトかヘルパーに関数作ってあげれば、使いやすいんじゃないかな。
コメント