如何从给定的 laravel 路由名称中获取操作?
How to get the action from a given laravel route name?
我将路线定义为:
Route::name('foo')->get('/foo', 'FooController@index');
我知道给定路由名称,我可以得到 URL:
route('foo'); // "http://localhost/foo"
我也知道给定的动作,我可以得到相同的URL:
action('FooController@index'); // "http://localhost/foo"
但是如何根据路由名称获取操作?
例如也许是这样的:
getActionFromRouteName('foo'); // "FooController@index"
您可以从请求中获取路由并调用 getActionName()
,例如:
public function someFunction(Request $request)
{
$request->route()->getActionName();
}
您可以使用 Route Facade。
\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" => [],
]
*/
我将路线定义为:
Route::name('foo')->get('/foo', 'FooController@index');
我知道给定路由名称,我可以得到 URL:
route('foo'); // "http://localhost/foo"
我也知道给定的动作,我可以得到相同的URL:
action('FooController@index'); // "http://localhost/foo"
但是如何根据路由名称获取操作?
例如也许是这样的:
getActionFromRouteName('foo'); // "FooController@index"
您可以从请求中获取路由并调用 getActionName()
,例如:
public function someFunction(Request $request)
{
$request->route()->getActionName();
}
您可以使用 Route Facade。
\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" => [],
]
*/