Здравствуйте, у меня есть такой вот маршрут:
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. Подскажите пожалуйста правильно ли так делать ? Может можно по другому это сделать. Заранее благодарю за ответ.