Laravel 5:为什么我能够以json格式检索数据,但数据在我的视图中不可用?

时间:2017-03-13 16:32:24

标签: laravel-5

我目前正在与Laravel 5.4合作,这是我第一次使用laravel。我创建了一些带有标签的帖子,并尝试检索特定标签的所有帖子。使用我的代码,不会返回任何错误,但也没有为该标记返回任何帖子(奇怪的是因为页面呈现没有错误)。我尝试从查询中返回$ post结果,并且我能够以JSON样式获得帖子。我需要帮助弄清楚我做错了什么导致这种奇怪的事情。

enter image description here

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 }} &nbsp; <a href="/post/{{ $post->id }}">Read more...</a></p>

                </div>

            </div>
        @endforeach

    @else

        <h4>There are no post yet for this category</h4>

    @endif

1 个答案:

答案 0 :(得分:0)

代码工作正常。错误是因为我正在视图中播放的一行{{$ post-&gt; tags() - &gt; pluck('name')}}。删除或注释掉该行并修复它。