我有一组array
存储id
的{{1}},我想显示blog post
帖子blog
} id
中存在,我无法通过array
传递它,因为我将大量数据传递给视图,并且动态调用博客帖子视图,在我的控制器I& #39; m得到所有帖子并通过视图:
controller
现在看来我有一个$blogpost = Post::all();
'blogpost' => $blogpost //data passed in return view
并且假设我想要获得我试图做的那个特定帖子的图像:
foreach loop
我收到错误
方法findOrFail不存在
此外,如果我将@foreach($contents->blogid as $blogid)
<?php
$blog = $blogpost->findOrFail($blogid);
?>
<div class="col-sm-4">
<article class="post post-masonry">
<div class="post-image">
<div class="image">
<img src="{{ $blog->featured_image }}" alt="">
<div class="image-extras">
<a href="#" class="post-gallery"></a>
</div>
</div>
</div>
</article>
</div>
@endforeach
更改为:
findOrFail
我收到错误:
尝试获取非对象的属性
帮帮我们。
感谢。
答案 0 :(得分:3)
您不应该混合原生PHP和刀片模板。
相反,让刀片为您完成工作! :)
@foreach($contents->blogid as $blogid)
..
<img src="{!! \App\Post::findOrFail($blogid)->featured_image; !!}" alt="">
..
@endforeach
您甚至不需要传递'blogpost'变量,只要您拥有到Post类的正确路线即可。我使用的是App \ Post,但对你而言可能会有所不同。
答案 1 :(得分:1)
Post::all()
将返回一个Post对象数组。因此,只需将该数组传递给您的刀片模板,然后遍历该数组的每个Post
。您还应将变量名称更改为博客 s 。
$blogposts = Post::all();
return view('blog.index', ['blogposts' => $blogposts]);
@foreach ($blogposts as $blogpost)
<p>{{ $blogpost->id }}</p>
<p>{{ $blogpost->featured_image }}</p>
@endforeach
答案 2 :(得分:-1)
findOrFail
或仅find
不具备本机PHP功能。您可以尝试静态调用,但我认为使用Laravel Relationship可以轻松解决您的问题,您的代码将不仅仅是干净的。