在Laravel中为不同类型的用户使用相同的路由

时间:2016-11-24 14:35:12

标签: php laravel

我的应用程序将有医生,患者和管理员

现在我想为所有角色提供相同的路线。如下:

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(未经授权)错误。即使没有它,我认为它只是覆盖了另一个?

  

是否有人能够使用相同的路线(/仪表板)完全不同的目的?又名不同的控制器/视图

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过检查用户角色来使用解决方法,然后相应地调用控制器函数:

Route::get('appointment', function()
{
    if (auth()->user()->isDoctor())
    {
        app()->call('Doctor\AppointmentController@index')
    }
    elseif(auth()->user()->isPatient())
    {
        app()->call('Patient\AppointmentController@index')
    }
});