#laravel
#laravel
Вопрос:
Я пытаюсь показать сообщение с помощью slug, но всегда получаю 404 not found.
Контроллер
public function show($slug)
{
$post = Post::findorFail($slug);
$tags = Tag::all();
return view('page.detail', compact('post', 'tags'));
}
Маршрут
Route::get('/post/{slug}', 'PageController@show');
Вид
@foreach($post as $item)
<a href="/post/{{$item->slug}}" class="btn-custom">Read More <span
class="ion-ios-arrow-forward">
@endforeach
Спасибо
Ответ №1:
findOrFail()
проверяет первичный ключ вашей Post.php
модели, что обычно id
, поэтому ваш запрос в настоящее время:
SELECT * FROM posts WHERE id = 'contents-of-slug'
Ваш код должен работать, если вы выполните следующие действия:
$post = Post::where('slug', $slug)->firstOrFail();
Смотрите Документацию; он показывает этот точный пример: