Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем Добрый День. Не могу разораться. Хочу прописать глобальный Роут на 404 ошибку на profiles.id. Если пользователь не авторезирован то его не существует, то отобразить ошибку 404 pages в id (такого профиля или юзера не существует
Web.php
Route::group(['middleware' =>
'auth'], function(){
$param_regex = ['id' => '(\d+)'];
Route::get('/id{id}', 'ProfilesController@index')->name('profile')->where($param_regex);Profiles.Controller
if(!$user){
$user = new \stdClass();
$user->error = 'User was not found';
}
$owner = Auth::user();
return view('profiles.profile', ['user' => $user,'users' => $users, 'owner' => $owner ]);
}
Данный код работает если вбить в браузер строку любой id не зарегистрированного пользователя ,то покажет - 'User was not found';
Но нужно прописать глобальный Роут 404pages. Кто знает как можно сделать? С ошибкой я сделал на время.
Изменено Viktor92 (02.10.2017 08:59:46)
Не в сети
Если нужно вручную показать 404 ошибку, используй abort(404)
https://laravel.ru/docs/v5/errors#http-исключения
Изменено AlexeyMezenin (02.10.2017 09:26:29)
Не в сети
Не Совсем то что мне нужно.
Изменено Viktor92 (02.10.2017 10:38:04)
Не в сети
Не в сети
Я сделал в контроллере не знаю правильно нет? Вобщем всё работает.
web.php
Route::get('/503', function () {
return view('errors.503');
});
Profiles Controllers.
if(!$user){
$user = new \stdClass();
return response()->view('errors.503', [], 503);
Не в сети
Маршрут под ошибку не нужно создавать. Просто делаешь в контроллере:
if (!user) {
abort(403);
}
Не в сети
Всё спасибо большое всё работает
Не в сети
Блин без маршрута не работает.
Не в сети
Всё полностью разобрался) Всем спасибо а что получается можно несколько подгрузить шаблонов ошибок?
Не в сети
Для каждой ошибки можно создать свое представление:
Не в сети
А почему бы просто не использовать $user = findOrFail(id) вместо id твой id. Он автоматом вызовет 404 если такого пользователя нет.
Не в сети
Страницы 1