我更新我的使用Laravel框架5.3 PHP PDO网站。我发现Laravel非常容易使用,但也有我不知道的语法出成效一些功能。
我有一个Laravel控制器
public function index(){
$posts = Post::latest()->get();
return view('/home', compact('posts'));
}
我在叶片使用使用foreach循环来提取数据
@foreach ($posts as $row)
@endforeach
其类似于使用fetchall()在PDO方法
$row = $posts->fetchAll();
现在我想的逻辑得到取(PDO :: FETCH_ASSOC)一样的结果,这样我可以分配
$row = $posts->fetch(PDO::FETCH_ASSOC);
我不得不这样做,因为我想用for循环中的刀片来显示数据,如果我使用foreach循环,然后它迭代结果造成重复。以下是PDO的代码,我有Laravel更新
for($i=0; $i<$count_photos; $i++){
$row_gallery = $get_photos->fetch(PDO::FETCH_ASSOC);
$pst_id = $row_gallery['post_id'];
$img = $row_gallery['img_name'];
echo '<div class="img_gallery"><div class="gallery'.$i.'"><a href="uploads/'. $img . '" data-lightbox="'.$pst_id.'"> <img class="img-responsive" src="uploads/'. $img . '"></a></div></div>';
}
该车型将已经被取出,当您使用get()
这样你就可以在模型例如访问属性直线距离
@foreach ($posts as $post)
{{ $post->title }} //assuming you have a "title" column in the database
@endforeach
你可能会有所帮助:https://laracasts.com/series/laravel-from-scratch-2017/episodes/7
如果你有photos
关系在Post
模型建立,那么你可以eager load的关系。此外,由于您只需要加载一个职位,你可以用它代替first()
get()
所以你会用下列结束:
控制器:
public function index()
{
$posts = Post::with('photos')->latest()->first();
return view('/home', compact('posts'));
}
刀片文件
@foreach($post->photos as $k => $photo)
<div class="img_gallery">
<div class="gallery{{ $k }}">
<a href="{{ url('uploads/'.$photo->img_name) }}" data-lightbox="{{ $post->id }}">
<img class="img-responsive" src="{{ url('uploads/'.$photo->img_name) }}">
</a>
</div>
</div>
@endforeach