【发布时间】:2015-01-11 16:41:55
【问题描述】:
Laravel 的路由似乎没有按预期工作?据我了解,如果我打算覆盖一条路线,我需要做的就是将预期路线放在另一条之前。
我所拥有的是这样的:
Route::group(array('before'=>'defaultLoads'), function(){
Route::post('newsletter', 'NewsletterController@store');
Route::group(array('before'=>'login'), function(){
Route::resource('newsletter','NewsletterController');
}
});
我假设如果我发布到这条路由 http://domain.com/newsletter 它应该只运行 defaultLoads 路由过滤器。
但是,当我运行 php artisan routes 时,我得到了这个:
| |邮政通讯 | 时事通讯商店 |通讯控制器@store | 默认加载,登录 | |
虽然它正确读取了路由(php artisan 在正确的位置加载了正确的路由),但是资源路由的过滤器会影响路由,即使它不在该过滤器组中。
所以我的问题:
这就是 Laravel 的工作原理吗?
-
如果是这样,我是否可以在不实际执行以下操作的情况下覆盖该 POST->newsletter 路由?
Route::group(array('before'=>'defaultLoads'), function(){ Route::post('newsletter', 'NewsletterController@store'); Route::group(array('before'=>'login'), function(){ Route::get('newsletter','NewsletterController@get'); Route::get('newsletter/{id}', 'NewsletterController@show'); //etc all the rest of the routes except post }});
【问题讨论】:
标签: php laravel laravel-4 laravel-routing