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