考虑到这样的路线:
Route::post('api/survey.json', ['as' => 'companies.getSurvey', 'uses' => 'CompaniesController@getSurvey']);
我有字符串" companies.getSurvey"我怎样才能找到指向哪种方法?也就是说,我要回到" CompaniesController @ getSurvey"或者我可以使用app()->call(...)
调用某种Closure。
使用Laravel 5.2
答案 0 :(得分:2)
(取决于您的laravel版本)您可以执行以下操作:
$route = app(\Illuminate\Routing\Router::class)->getRoutes()->getByName('companies.getSurvey');
if ($route) {
app()->call($route->getAction()['uses']);
}
答案 1 :(得分:0)
你不能。
路由名称绑定到URL,而不是正在执行的方法。意思是,相同的路径名可以用于POST
和GET
(和其他方法),这通常会导致不同的控制器方法(甚至控制器)。
修改强>
澄清:单个方法名称可以指向多个方法。以下是php artisan route:list
| | GET | HEAD |测试|测试| App \ Http \ Controllers \ TestController @ getTest |网络|
| | POST |测试|测试| App \ Http \ Controllers \ TestController @ postTest |网络|
^两者都被命名为test
并指向不同的方法。