试图获得财产';封面图片';非对象的视图(视图:C:\Users\BWB\Documents\Laravel\asperablogs\resources\views\blogs\blogs.blade.php)

试图获得财产';封面图片';非对象的视图(视图:C:\Users\BWB\Documents\Laravel\asperablogs\resources\views\blogs\blogs.blade.php),php,laravel,Php,Laravel,因此,我正在创建一个博客网站,并正在实现标记。我总是在标题上出错,不知道该怎么办。我在这里看过类似的问题,但它们看起来与我的做法不同。我正在为标签使用透视表。当我用贴子做的时候,只有它工作得很好,并且显示了所有的东西 这是来自我的posts控制器的索引方法 public function index() { $posts = Post::all()->sortByDesc('created_at'); return view('blogs.blogs', compact('po

因此,我正在创建一个博客网站,并正在实现标记。我总是在标题上出错,不知道该怎么办。我在这里看过类似的问题,但它们看起来与我的做法不同。我正在为标签使用透视表。当我用贴子做的时候,只有它工作得很好,并且显示了所有的东西 这是来自我的posts控制器的索引方法

public function index()
{
   $posts = Post::all()->sortByDesc('created_at');
   return view('blogs.blogs', compact('posts'));
}
public function index(Tag $tag){
    $posts = $tag->posts();
    return view('blogs.blogs')->with('posts',$posts);
}
下面是来自我的标记控制器的索引方法

public function index()
{
   $posts = Post::all()->sortByDesc('created_at');
   return view('blogs.blogs', compact('posts'));
}
public function index(Tag $tag){
    $posts = $tag->posts();
    return view('blogs.blogs')->with('posts',$posts);
}
下面是我在视图中输出它的方式

@foreach($posts as $post)
    <div class="well row">
        <div class="col-md-4">
            <img style="width: 100%" src="/storage/cover_images/{{$post->cover_image}}" alt="">
        </div>
        <div class="col-md-8">
            <h3> <a href="/posts/{{$post->id}}">{{$post->title}}</a></h3>
            <h3>{{$post->created_at}}</h3>
        </div>
    </div>
@endforeach
错误

您的错误源于foreach循环中的变量
$post
已作为非对象返回


可能原因

$posts
不是作为集合返回,而是作为查询生成器实例返回

$posts = $tag->posts();
如果您已经在
标记
模型和
发布
模型之间建立了雄辩的关系,那么当您将其作为一种方法访问时(即
$Tag->posts()
),您将获得雄辩的查询生成器实例。如果您将其作为属性访问(即
$tag->posts
),它将返回一个有说服力的集合


建议

尝试将帖子作为集合传递给视图

public function index(Tag $tag) {
    return view('blogs.blogs', [
        'posts' => $tag->posts
    ]);
}
并尝试使用
@forelse
循环捕获没有帖子的实例

@forelse ($posts as $post)

@empty

@endforelse

错误

您的错误源于foreach循环中的变量
$post
已作为非对象返回


可能原因

$posts
不是作为集合返回,而是作为查询生成器实例返回

$posts = $tag->posts();
如果您已经在
标记
模型和
发布
模型之间建立了雄辩的关系,那么当您将其作为一种方法访问时(即
$Tag->posts()
),您将获得雄辩的查询生成器实例。如果您将其作为属性访问(即
$tag->posts
),它将返回一个有说服力的集合


建议

尝试将帖子作为集合传递给视图

public function index(Tag $tag) {
    return view('blogs.blogs', [
        'posts' => $tag->posts
    ]);
}
并尝试使用
@forelse
循环捕获没有帖子的实例

@forelse ($posts as $post)

@empty

@endforelse