我正在研究一个基本系统,博客从其他数据库表中检索图像,但它显示的是帖子而不是照片 这是我的控制器:
$bloginfo=bloginfo::where('blog_name','=',$name)->first();
$blogposts=pageposts::where('p_id','=',$bloginfo->id)->orderBy('id','desc')->get();
foreach($blogposts as $posts){
$photoscount=pagephotos::where('b_id','=',$posts->id)->count();
$blogphotos=pagephotos::where('b_id','=',$posts->id)->get();
}
return View::make('myblog')
->with('bloginfo',$bloginfo)
->with('blogposts',$blogposts)
->with('blogphotos',$blogphotos)
->with('photoscount',$photoscount);
这是我的观点:
@foreach($blogposts as $posts)
<div class="panel panel-default">
<div class="panel-body">
@if($photoscount==0)
{{ null }}
@elseif($photoscount==1)
//a bunch of code here
@else
//a bunch of code here
@endif
<h4><a href="">{{ $posts->title }}</a></h4>
<p>{{ $posts->description }}</p>
</div>
</div>
@endforeach
答案 0 :(得分:1)
我建议你研究关系,这也可能是你的答案。
您可以在一个查询中急切加载所有数据。
bloginfo::with('posts', 'posts.images')->where('blog_name','=',$name)->first();
这将加载博客帖子,其中包含与其相关的所有信息,即帖子及其图片。看这里设置它们。 HERE
由于您当前的问题在您的for循环中,因此您将覆盖您设置n次的变量,即按照发布的数量。所以你可能会总是得到不同的结果。