Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 02.10.2017 08:57:17

Viktor92
Откуда: Москва
Сообщений: 16

Как сделать Глобальный Роут 404?

Всем Добрый День. Не могу разораться. Хочу прописать глобальный Роут на 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)

Не в сети

#2 02.10.2017 09:25:56

Re: Как сделать Глобальный Роут 404?

Если нужно вручную показать 404 ошибку, используй abort(404)

https://laravel.ru/docs/v5/errors#http-исключения

Изменено AlexeyMezenin (02.10.2017 09:26:29)

Не в сети

#3 02.10.2017 10:37:51

Viktor92
Откуда: Москва
Сообщений: 16

Re: Как сделать Глобальный Роут 404?

Не Совсем то что мне нужно.

Изменено Viktor92 (02.10.2017 10:38:04)

Не в сети

#4 02.10.2017 10:55:34

Re: Как сделать Глобальный Роут 404?

Почему тебе этот вариант не подходит?

Не в сети

#5 02.10.2017 11:09:06

Viktor92
Откуда: Москва
Сообщений: 16

Re: Как сделать Глобальный Роут 404?

Я сделал в контроллере не знаю правильно нет? Вобщем всё работает.

web.php
Route::get('/503', function () {
    return view('errors.503');
});
Profiles Controllers.
if(!$user){
     
     $user = new \stdClass();
     return response()->view('errors.503', [], 503);

Не в сети

#6 02.10.2017 11:48:30

Re: Как сделать Глобальный Роут 404?

Маршрут под ошибку не нужно создавать. Просто делаешь в контроллере:

if (!user) {
    abort(403);
}

Не в сети

#7 02.10.2017 11:58:19

Viktor92
Откуда: Москва
Сообщений: 16

Re: Как сделать Глобальный Роут 404?

Всё спасибо большое всё работает

Не в сети

#8 02.10.2017 12:06:06

Viktor92
Откуда: Москва
Сообщений: 16

Re: Как сделать Глобальный Роут 404?

Блин без  маршрута не работает.

Не в сети

#9 02.10.2017 12:08:57

Viktor92
Откуда: Москва
Сообщений: 16

Re: Как сделать Глобальный Роут 404?

Всё полностью разобрался) Всем спасибо а что получается можно несколько подгрузить шаблонов ошибок?

Не в сети

#10 02.10.2017 12:19:56

Re: Как сделать Глобальный Роут 404?

Для каждой ошибки можно создать свое представление:

https://laravel.ru/docs/v5/errors#свои

Не в сети

#11 10.10.2017 21:50:21

Re: Как сделать Глобальный Роут 404?

А почему бы просто не использовать $user = findOrFail(id) вместо id твой id. Он автоматом вызовет 404 если такого пользователя нет.

Не в сети

Подвал раздела