Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Как лучше отправлять пользователю 404, если url до категории неверный?

Здравствуйте, у меня есть такой вот маршрут:
Route::get('/katalog/{alias}', 'Web\PageController@catalogItems')->where('alias','(.*)?');

И вот метод, который срабатывает для этого маршрута:
Метод catalogItems

public function catalogItems($alias)
{
        $arrayUrl = explode("/",$alias);
        $entity = Category::GetByAlias(Arr::last($arrayUrl))->first();
        return view("web.page.entity.entity",[
            "entity" => $entity,
            "children" => $entity->children()->Active()->get(),
            "products" => $entity->products()->Active()->with("images")->get(),
            "breadcrumbs" => Breadcrumbs::make($entity)
        ]);
}


Это хорошо работает, вот с таким url к примеру:
домен/katalog/catalog1/catalog1-1
Но это работает и с таким url:
домен/katalog/qweqweqweqweqweqwe/catalog1-1
Потому что я беру последний alias из url и по нему ищу категорию.

Я сейчас думаю что мне нужно на такой url домен/katalog/qweqweqweqweqweqwe/catalog1-1 возвращать 404, сделать я это думаю с помощью сверки текущего url с массивом алиасов предков, этот массив возвращает класс Breadcrumbs::make($entity) и если будет разница то возвращать 404. Подскажите пожалуйста правильно ли так делать ? Может можно по другому это сделать. Заранее благодарю за ответ.
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@galliard
Я бы просто находил сущность по catalog1-1, а потом проверял, есть ли у нее родитель с идентификатором catalog1. Если нет - эксепшн, который можно потом поймать и вывести пользователю 404.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы