У меня есть проект на Laravel 5.8. Это inte rnet -маркет с категориями, брендами и продуктами. Я использовал в своих контроллерах переменную из модели: route:
Route::prefix('categories')->get('/{category}', 'ProductsController@openCategory')->name('openCategory');
модель:
class Category extends Model
{
public function products()
{
return $this->hasMany(Product::class);
}
public function getRouteKeyName()
{
return 'category_alias';
}
}
метод контроллера:
public function openCategory(Category $category = null)
{
$allInfo = $this->getAllInfo();
$categories = $this->getCategories();
$brands = $this->getBrands();
return view("pages.category", compact('allInfo','category', 'categories', 'brands'));
}
Я не использую отношение по ID, я использую отношение по 'category_alias'. Но если я напишу название категории с ошибкой, я получу сообщение - OPPS! Мы не смогли найти эту страницу Э-э ... Похоже, вы что-то испортили. Страница, которую вы ищете, исчезла и исчезла. Почему? Но если я использую отношение по идентификатору, я получаю страницу 404 - для меня это успех.