【发布时间】:2015-01-20 02:23:07
【问题描述】:
如何在 Laravel 4 中正确过滤你的 route::group ?
我的 route::group 过滤器有问题。
他们都是一样的东西。
底部的路由组有效,而顶部的路由组无效。 :(
他们一直重定向到 404,我不打算这样做。
谁能告诉我我做错了什么?
////////////////
// OEM Routes //
////////////////
Route::group(array('before'=>'oem'),function() {
Route::get('distributors/{id}', array('before' =>'profile', 'uses'=>'DistributorController@show'));
Route::get('distributors/{id}/edit', 'DistributorController@edit');
Route::put('distributors/{id}/update', array('as'=>'distributors.update', 'uses'=>'DistributorController@update'));
Route::get('catalog_downloads','CatalogDownloadController@index');
Route::get('catalog_downloads/{id}/download','CatalogDownloadController@file_download');
});
////////////////////////
//Distributor Routes //
////////////////////////
Route::group(array('before'=>'distributor'),function() {
Route::get('distributors/{id}', array('before' =>'profile', 'uses'=>'DistributorController@show'));
Route::get('distributors/{id}/edit', 'DistributorController@edit');
Route::put('distributors/{id}/update', array('as'=>'distributors.update', 'uses'=>'DistributorController@update'));
Route::get('catalog_downloads','CatalogDownloadController@index');
Route::get('catalog_downloads/{id}/download','CatalogDownloadController@file_download');
Route::get('marketing_materials','MarketingMaterialController@index');
Route::get('marketing_materials/{id}/download/thumb_path','MarketingMaterialController@thumb_download');
Route::get('marketing_materials/{id}/download/media_path','MarketingMaterialController@media_download');
Route::get('marketing_materials/{id}', array('before' =>'profile', 'uses'=>'MarketingMaterialController@show'));
});
编辑添加过滤器.php
目标:
用户类型 = 分销商
for user()->type = "分销商"
他们可以访问这个:
Route::get('distributors/{id}', array('before' =>'profile', 'uses'=>'DistributorController@show'));
Route::get('distributors/{id}/edit', 'DistributorController@edit');
Route::put('distributors/{id}/update', array('as'=>'distributors.update', 'uses'=>'DistributorController@update'));
Route::get('catalog_downloads','CatalogDownloadController@index');
Route::get('catalog_downloads/{id}/download','CatalogDownloadController@file_download');
Route::get('marketing_materials','MarketingMaterialController@index');
Route::get('marketing_materials/{id}/download/thumb_path','MarketingMaterialController@thumb_download');
Route::get('marketing_materials/{id}/download/media_path','MarketingMaterialController@media_download');
用户类型 = 经销商 + 经销商类型 = OEM
否则,如果 user()->type = "Distributor" AND Auth::user()->distributor()->first()->type == 'OEM'
他们只能访问:
Route::get('distributors/{id}', array('before' =>'profile', 'uses'=>'DistributorController@show'));
Route::get('distributors/{id}/edit', 'DistributorController@edit');
Route::put('distributors/{id}/update', array('as'=>'distributors.update', 'uses'=>'DistributorController@update'));
Route::get('catalog_downloads','CatalogDownloadController@index');
Route::get('catalog_downloads/{id}/download','CatalogDownloadController@file_download');
不是这个。。
Route::get('marketing_materials','MarketingMaterialController@index');
Route::get('marketing_materials/{id}/download/thumb_path','MarketingMaterialController@thumb_download');
Route::get('marketing_materials/{id}/download/media_path','MarketingMaterialController@media_download');
【问题讨论】:
-
你能告诉我们
distributor和oem这两个过滤器吗? -
@lukasgeiter :我注意到,你总是帮助我。谢谢你的考虑。 :)
-
关于过滤器,从一开始我就想在帖子中展示它,但是由于代码很多,所以不会让我这样做。我如何在评论中发布它而不会让你感到困惑。
-
不客气,我是来帮忙的 ;) 你说的 SO won't let you 是什么意思?
-
您知道,当我们发布大量代码而不是解释时,堆栈溢出 (SO) 会阻止您这样做。我不知道 - 也许我的名声很低。
标签: laravel laravel-4 routes laravel-routing