我的应用程序将有医生,患者和管理员
现在我想为所有角色提供相同的路线。如下:
app.com/dashboard/
app.com/dashboard/appointments
但是我想为患者提供一个不同的控制器,以及一个用于医生的人。我试过以下没有成功
Route::group(['prefix' => 'dashboard', 'middleware' => ['auth']], function () {
/* Doctor */
Route::group(['middleware' => ['role:doctor']], function() {
Route::get('/appointments', 'Doctor\AppointmentController@index');
});
/* Patient */
Route::group(['middleware' => ['role:patient']], function() {
Route::get('/appointments', 'Patient\AppointmentController@index');
});
});
我的角色中间件导致403(未经授权)错误。即使没有它,我认为它只是覆盖了另一个?
是否有人能够使用相同的路线(/仪表板)完全不同的目的?又名不同的控制器/视图
谢谢!
答案 0 :(得分:0)
您可以通过检查用户角色来使用解决方法,然后相应地调用控制器函数:
Route::get('appointment', function()
{
if (auth()->user()->isDoctor())
{
app()->call('Doctor\AppointmentController@index')
}
elseif(auth()->user()->isPatient())
{
app()->call('Patient\AppointmentController@index')
}
});