Laravel 使用闭包和名称进行路由
Laravel routing with Closures and Names
我很好奇,因为我找不到太多关于此的文档 - 如果我也想调用闭包,我该如何命名路由?
我找到了如何调用控制器函数,但没有找到如何命名路由。
命名路线:
Route::get( '{foo}', ['as' => 'foo.home', 'uses' => 'FooController@home'] );
带控制器调用的关闭路线:
Route::get( '{foo}', function() {
$fooController = $app->make('FooController');
return $fooController->callAction('home', $parameters = array());
});
但是我找不到如何将路由名称合并到第二个示例中。
您也可以将数组与 name
和 uses
一起使用:
Route::get('{foo}', array('name' => 'foo.home', 'uses' => function(){
$fooController = $app->make('FooController');
return $fooController->callAction('home', $parameters = array());
}));
它在没有 uses
的情况下也可以工作(Laravel 识别类型 Closure
)
Route::get('{foo}', array('name' => 'foo.home', function(){
$fooController = $app->make('FooController');
return $fooController->callAction('home', $parameters = array());
}));
最简单的方法是将其命名为 class
Route::get( '{foo}', function() {
return (new $fooController)->homeMethod($parameters);
})->name('foohome');;
我很好奇,因为我找不到太多关于此的文档 - 如果我也想调用闭包,我该如何命名路由?
我找到了如何调用控制器函数,但没有找到如何命名路由。
命名路线:
Route::get( '{foo}', ['as' => 'foo.home', 'uses' => 'FooController@home'] );
带控制器调用的关闭路线:
Route::get( '{foo}', function() {
$fooController = $app->make('FooController');
return $fooController->callAction('home', $parameters = array());
});
但是我找不到如何将路由名称合并到第二个示例中。
您也可以将数组与 name
和 uses
一起使用:
Route::get('{foo}', array('name' => 'foo.home', 'uses' => function(){
$fooController = $app->make('FooController');
return $fooController->callAction('home', $parameters = array());
}));
它在没有 uses
的情况下也可以工作(Laravel 识别类型 Closure
)
Route::get('{foo}', array('name' => 'foo.home', function(){
$fooController = $app->make('FooController');
return $fooController->callAction('home', $parameters = array());
}));
最简单的方法是将其命名为 class
Route::get( '{foo}', function() {
return (new $fooController)->homeMethod($parameters);
})->name('foohome');;