我正在尝试了解 Laravel 4 中的路由。我在 StackOverflow 上阅读了一篇很好的帖子,以及一个链接 to beware the route to evil,一篇关于手动指定路由的帖子。我喜欢手动指定我的路由并将 routes.php 作为文档的想法。但是,如果我要指定自己的路线而不是使用,我似乎需要对路线的顺序保持谨慎。Route::resource()
如果我在之前有new
orcreate
路线,show
那么由于变量 in网址?定义路线的顺序很重要,对吧?
// This will not work if I try and browse to dogs/new
Route::get('dogs', array('as' => 'dogs', 'uses' => 'DogsController@index'));
Route::get('dogs/{dogs}', array('as' => 'dog', 'uses' => 'DogsController@show'));
Route::get('dogs/new', array('as' => 'new_dog', 'uses' => 'DogsController@create'));
看来我需要确保dogs/new
在dogs/{dogs}
for new 正确返回之前出现。我不清楚有什么不同或{dogs}
有什么不同,(:any)
或者{any}
我在示例和伪代码中看到了一些不同的用途。我看到这/new
与{...}
路线在更具体的情况之前是一样的,就像 Laravel 4 中的通配符一样?(:...) 是旧方式吗?
顺便说一句,我注意到与我在php artisan routes
使用资源路由运行时看到的一些示例不同的命名约定,例如Route::resource('photos', 'PhotosController');
用于发布索引以创建新资源的方法和命名路由名为 photos.store 和 @店铺。链接到表单以创建新资源的方法和命名路径是 photos.create 和 @create。那是 Laravel 4 的东西还是其他框架中的约定?