我的路线定义为:
Route::name('foo')->get('/foo', 'FooController@index');
我知道根据路线名称,我可以获得网址:
route('foo'); // "http://localhost/foo"
我也知道在给定动作的情况下,我可以获得相同的URL:
action('FooController@index'); // "http://localhost/foo"
但是如何根据路线名称获取操作?
e.g。也许是这样的:
getActionFromRouteName('foo'); // "FooController@index"
答案 0 :(得分:2)
您可以使用路线立面。
\Route::getRoutes()->getByName('test')->getActionName()
// "App\Http\Controllers\TestController@index"
或包含整个操作数据的数组:
\Route::getRoutes()->getByName('test')->getAction()
/*
[
"middleware" => "web",
"as" => "test",
"uses" => "App\Http\Controllers\TestController@index",
"controller" => "App\Http\Controllers\TestController@index",
"namespace" => "App\Http\Controllers",
"prefix" => null,
"where" => [],
]
*/
答案 1 :(得分:0)
您可以从请求中获取路线并致电getActionName()
,例如:
public function someFunction(Request $request)
{
$request->route()->getActionName();
}