Laravel, нужно показать маршрут URL домен / специалист / id - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу показать идентификатор пользователя URL домена после входа в систему, например, домен / специалист / идентификатор. УЖЕ КАК ДЕНЬ 2 ЭТО НЕ ПОЛУЧЕНО. Может быть, я делаю что-то не так, помогите, пожалуйста.

Это мой веб. php код

 // Front End Routes
 Route::group([
 'namespace' => 'landing',
 'middleware' => 'groups',
 ], function (){
 Route::get('/', 'PagesController@index')->name('landing.index');
 Route::get('/specialist/{id}', 'SpecialistDashboardController@dashboard')- 
 >name('frontend.specialist.dashboard');
 Route::get('/logout', '\App\Http\Controllers\Auth\LoginController@logout');
});

Код контроллера специализированной панели управления

class SpecialistDashboardController extends Controller
{

    public function dashboard($id){
        $id = Auth::user()->id;
        return view('Frontend.specialists.dashboard.index');
    }

    public function profile_settings(){
        return view('Frontend.specialists.profile_settings.index');
    }
}

GroupsMiddleware

    public function handle($request, Closure $next)
    {
        // ADMIN = 5
        if (\Auth::check() && Auth::user()->groups == 5){
            return $next($request);
        }
        // PATIENTS = 1
        elseif(\Auth::check() && Auth::user()->groups == 1){
            return redirect()->route('landing.index');
        }
        // SPECIALISTS = 3
        elseif (\Auth::check() && Auth::user()->groups == 3){
            return redirect()->route('frontend.specialist.dashboard');
        }
    }

Сообщение об ошибке: отсутствуют обязательные параметры для [Route: frontend.specialist.dashboard] [URI: специалист / {id}].

1 Ответ

0 голосов
/ 14 апреля 2020

Для вашего маршрута frontend.specialist.dashboard требуется параметр id, но вы не указали его при перенаправлении. Также, глядя на ваш SpecialistDashboardController, $id можно опустить, поскольку вы перезаписываете его с помощью Auth::id().

Попробуйте сделать это:

# remove the {id} param
Route::get('/specialist', 'SpecialistDashboardController@dashboard')- 
 >name('frontend.specialist.dashboard');
class SpecialistDashboardController extends Controller
{
    ...
    public function dashboard(){ // remove the $id param
        $id = Auth::user()->id;
        return view('Frontend.specialists.dashboard.index');
    }
    ...
}

Но если в любом случае вам нужен параметр id, вы можете указать его значение в перенаправлении, выполнив

return redirect()->route('frontend.specialist.dashboard', ['id' => $id]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...