Не получается вывести заголовки категорий Laravel.
Маршрут:
Route::get('/catalog/{id}', 'SiteController@catalog_page')->where('id', '[0-9]+');
Контроллер:
class SiteController extends Controll
{
protected $menus;
public function __construct()
{
// Коллекция всех менюшек.
$this->menus = Menu::all();
}
public function catalog_page($id)
{
// Извлекаем текущую категорию из коллекции.
$category = $this->menus->find($id);
// Если категории нет в коллекции, то выдаём 404.
if(is_null($category)) {
abort(404, 'Page not found');
}
return view('catalog_page', [
'menus' => $this->menus,
'category' => $category
]);
}
}
Шаблон catalog_page
:
<div class="content__right">
<h1>{{ $category->title }}</h1>
</div>
При переходе на страницу выдает ошибку:
(1/1) NotFoundHttpException in RouteCollection.php line 179
Вы опять не указали версию Laravel.
Ошибка NotFoundHttpException in RouteCollection.php говорит о том, что не найден запрашиваемый маршрут (роут).
Решение: убедитесь, что вы действительно переходите/запрашиваете необходимую страницу по адресу, например, /catalog/{id}
, а не '/catalog/{alt}'
или '/catalog/{slug}'
.
Помимо этого, довольно часто ошибка возникает, когда при изменении маршрута в кэше хранится старые версии маршрутов. Их очистку и повторное кэширование можно выполнять через командную строку, либо вручную удалить все файлы в папке bootstrap\cache
, кроме .gitignore
: так как в этой папке также хранятся кэши.
Небольшой список команд по очистке.
1 Очистка компилированных шаблонов в папке \storage\framework\views
:
php artisan view:clear
2 Очистка файлов фасада Cache
в папке \storage\framework\cache\data
:
php artisan cache:clear
3 Очистка и кэширование файла конфигурации \bootstrap\cache\config.php
:
php artisan config:cache
4 Очистка и кэширование файла маршрутов \bootstrap\cache\routes.php
:
php artisan route:cache
Также данные команды можно вызывать из приложения, например, в одном из контроллере вашей админ. панели:
// php
Artisan::call('route:cache');
Итог: если вы вносите изменения в файлы из папки config
, то необходимо выполнить config:cache
; внесли изменения в маршруты - route:cache
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском