У меня есть этот маршрут:
Route::get('conference/admin/{id}',
[ 'uses' => 'ConferenceController@admin',
'as'=>'conference.admin']);
Таким образом, когда пользователь получает доступ к http://proj.test/conference/manage/1", он получает доступ к домашней странице страницы административной области конференции.
Но если эта конкретная конференция удаляется, если пользователь выходит "http://proj.test/conference/admin/1", появляется страница с таким сообщением:
Извините, страница, которую вы ищете, не найдена.
Но, если конференция не существует и пользователь подключается "http://proj.test/conference/admin/1", что должно произойти, если пользователь будет перенаправлен на домашнюю страницу ('/').
Вы знаете, как этого добиться?
У меня уже есть в AuthServiceProvider приведенный ниже код, чтобы позволить только пользователю, который является создателем конференции, иметь доступ к административной области этой конференции. Я не знаю, можно ли это использовать также для перенаправления пользователя в ('/'), если он получает доступ к конференции, которая не существует.
// Ворота поставщика услуг аутентификации
public function boot(GateContract $gate)
{
$this->registerPolicies();
$gate->define('access-management-area', function($user, $conference)
{
return $user->id == $conference->organizer_id;
});
}
Затем в admin () используется гейт:
public function admin($id){
$conference = Conference::findOrFail($id);
if(Gate::allows('access-management-area', $conference)) {
return view('conference.admin')->with('conference',$conference);
} else {
return redirect('/');
}
}