Как подружиться с двумя Route?

Не так давно начал изучать Laravel. Встала задача написать Route по перехвату с именем бренда

скажем
test.ru/brand1
test.ru/brand2

и тд

Но в то же время должны работать такие страницы как /about, /contacts и тд (у которых может быть разный шаблон)

Что сделал я сейчас:

1) Написал route. Он перехватывает все (регулярку пока не писал, хватаю все)
Route::get('/{id}', [BrandController::class, 'brandItem'])->name('brand');

2) В контроллере ищу в базе бренда и в случае удачи, отдаю
public function brandItem($id){
        $brand = new Brand;
        $brand_item = $brand->where('url', $id)->first();

        return $brand_item ? $brand_item : false;
}

Вопрос: что сделать что бы в случае false шла проверка других Route?

Route::get('/{id}', [BrandController::class, 'brandItem'])->name('brand');

Route::get('/about', function () {
    return view('about');
});

Подскажите в какую сторону смотреть, возможно есть другой вариант. Конечно на ум приходит прямо в контроллере Бренда написать в случае чего куда идти, но это напоминает "костыль." Скажем если будет 10 страниц таких, то все надо перечислять в контроллере.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
Поменяйте роуты местами.
Они обрабатываются по порядку следования.

В контроллере ищу в базе бренда и в случае удачи, отдаю

В случае неудачи следует отдавать 404
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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