我目前正在与Laravel 5.4合作,这是我第一次使用laravel。我创建了一些带有标签的帖子,并尝试检索特定标签的所有帖子。使用我的代码,不会返回任何错误,但也没有为该标记返回任何帖子(奇怪的是因为页面呈现没有错误)。我尝试从查询中返回$ post结果,并且我能够以JSON样式获得帖子。我需要帮助弄清楚我做错了什么导致这种奇怪的事情。
Route :: get(' / category / {category}',' PostController @ category');
public function category($category)
{
$posts = Post::whereHas('tags', function ($query) use ($category) {
//dd($category);
$query->where('name', '=', $category);
})->get();
$archives = Post::archives();
return view('post.category', compact('posts', 'category', 'archives'));
//return $posts;
}
发布模型
public function tags()
{
return $this->belongsToMany(Tag::class);
}
标记模型
public function posts()
{
return $this->belongsToMany(Post::class);
}
post.category
@if (count($posts) > 0)
@foreach ($posts as $post)
<div class="row panel panel-default">
<div class="panel-body">
<img src="http://placehold.it/900x300" class="img-responsive" alt="">
<h3>{{ $post->caption }}</h3>
<p class="note">{{ $post->note }} <a href="/post/{{ $post->id }}">Read more...</a></p>
</div>
</div>
@endforeach
@else
<h4>There are no post yet for this category</h4>
@endif
答案 0 :(得分:0)
代码工作正常。错误是因为我正在视图中播放的一行{{$ post-&gt; tags() - &gt; pluck('name')}}。删除或注释掉该行并修复它。