bsa*_*aka 6 php laravel laravel-5.1
我相信这很简单,但我不明白。请从文档中解释这一点:
命名控制器路由和闭包路由一样,你可以在控制器路由上指定名称:
Route::get('foo', ['uses' => 'FooController@method', 'as' => 'name']);
我不清楚“用途”、“作为”和“名称”的目的以及如何使用它们。
更新:
所以我命名了一个路由闭包,'bar'但是NotFoundHttpException在尝试调用/bar或/qux在 URL 中时我得到了一个
Route::get('foo', ['as' => 'bar', function() {
dd('foo');
}]);
Route::get('qux', function() {
action('bar');
});
Run Code Online (Sandbox Code Playgroud)
uses指定当路由命中时调用哪个类,以及该类上的哪个方法。因此,对于 Laravel 5.1,在您的示例中,默认情况下将method()是类上的方法app/Http/Controllers/FooController.php
as意味着您为路线命名,以便以后更容易链接到它。假设您有十个视图,并且您从所有视图链接到相同的路线。如果您更改链接的格式,则必须单独跟踪每个链接并更改它们。但是,如果您为路线命名,则无需更改任何内容,因为他们只会按该名称查找路线。
将它们放在一起,假设您有一个网上商店,并且您希望为您的客户页面提供一条路线,并且您希望从您的视图中链接到它。它可能看起来像这样:
Route::get('customers', [
'uses' => 'ShopController@customers',
'as' => 'customers'
]);
Run Code Online (Sandbox Code Playgroud)