ошибка 404 не найдена при попытке показать сообщение по категориям

#laravel

#laravel

Вопрос:

Я пытаюсь показать сообщение по категориям, например, если я нажму категорию учебника, она покажет все сообщения с руководством по категориям. Но я получаю ошибку 404 not found.

Маршрут

 Route::get('/tags/{tags}', 'PageController@post_tags');
 

Контроллер

 public function post_tags(Tag $tags)
{
    $data = Post::where('tags', $tags)->get();
    return view('page.app', compact('data'));
}
 

Вид

 @foreach($tags as $item)
    <ul>
       <li><a href="/tags/{{$item->tags}}">{{ $item->tags }}</a></li>
    </ul>
@endforeach
 

Если мой код неверен, как правильно отобразить сообщение по категориям?
извините за мой плохой английский

Комментарии:

1. Это не похоже на правильную настройку базы данных для Post and Tags ; у вас должна быть Tag.php модель, Post.php модель и сводная таблица post_tag , затем связь между Post и Tag : посмотрите, как работает belongsToMany() связь: laravel.com/docs/8.x/eloquent-relationships#many-to-many . Я подозреваю, что ваш posts.tags столбец содержит что-то вроде tutorial,something,another , что вызовет у вас много проблем.

Ответ №1:

В вашем контроллере вы отправляете $data во внешний интерфейс, а не $tags, поэтому вы получаете доступ к данным через переменную $data.

 @foreach($data as $item)
    <ul>
       <li><a href="/tags/{{$item->tags}}">{{ $item->tags }}</a></li>
    </ul>
@endforeach