Laravel 5 Laravel访问控制器根据用户组使用不同的路由
我目前有一个Laravel 5 Laravel访问控制器根据用户组使用不同的路由,laravel-5,Laravel 5,我目前有一个booker和admin用户组。booker用户被分配给1个事件,而管理员用户未被分配给任何事件 两个用户组都有如下路由组: Route::group(['middleware' => 'booker'], function() { Route::controller('event', 'EventController'); }); Route::group(['middleware' => 'admin'], function() { Route
booker
和admin
用户组。booker
用户被分配给1个事件
,而管理员
用户未被分配给任何事件
两个用户组都有如下路由组:
Route::group(['middleware' => 'booker'], function() {
Route::controller('event', 'EventController');
});
Route::group(['middleware' => 'admin'], function() {
Route::controller('admin', 'AdminController');
});
getIndex /event
getOverview /event/overview
postOverview /event/overview
getFacilities /event/facilities
postFacilties /event/facilities
etc.
/admin/events/1
/admin/events/1/overview
/admin/events/1/facilties
/admin/events/1/schedule
etc.
EventController
中的操作如下:
Route::group(['middleware' => 'booker'], function() {
Route::controller('event', 'EventController');
});
Route::group(['middleware' => 'admin'], function() {
Route::controller('admin', 'AdminController');
});
getIndex /event
getOverview /event/overview
postOverview /event/overview
getFacilities /event/facilities
postFacilties /event/facilities
etc.
/admin/events/1
/admin/events/1/overview
/admin/events/1/facilties
/admin/events/1/schedule
etc.
当以admin
用户组的身份登录时,我是否可以使用EventController
操作执行以下路由:
Route::group(['middleware' => 'booker'], function() {
Route::controller('event', 'EventController');
});
Route::group(['middleware' => 'admin'], function() {
Route::controller('admin', 'AdminController');
});
getIndex /event
getOverview /event/overview
postOverview /event/overview
getFacilities /event/facilities
postFacilties /event/facilities
etc.
/admin/events/1
/admin/events/1/overview
/admin/events/1/facilties
/admin/events/1/schedule
etc.
其中,我不是从用户那里获取事件
id,而是从URL获取它
谢谢好的,我设法到达了那里,虽然那里很乱,所以我还是想知道是否有更好的解决方案: 路线:
Route::group(['middleware' => 'booker'], function() {
Route::controller('event', 'EventController');
});
Route::group(['middleware' => 'admin'], function() {
Route::controller('admin/events/{id?}', 'EventController');
Route::controller('admin', 'AdminController');
Route::get('event', function() { return redirect('admin'); });
});
在EventController中(使用Sentry):
正如您所看到的,我不得不使用URL段作为id,因为我找不到在路由中传递id变量的方法。route变量只允许我忽略id并加载控制器
我发现我无法在EventController视图中使用这样的URL:
<a href="{{ URL::action('EventController@getOverview') }}">Overview<a>
// /event/overview
// /admin/events//overview
概述
///事件/概述
///admin/events//概述
不过,我可以使用其他助手将其破解:
<a href="{{ URL::full().'/overview' }}">Overview<a>
// /event/overview
// /admin/events/3/overview
概述
///事件/概述
///admin/events/3/概述