2016-08-19 18 views
1

我有两个表之间的关系:博客,图片。如何选择字段不为空的行?

博客模式

public function images(){ 
    return $this->hasMany('App\ImageBlog', 'id_blog', 'id'); 
} 

控制器

$lastPosts = Blog::orderBy('id', 'desc')->with('images')->take(3)->get(); 

所以,我怎样才能得到最后三行其中images不为空?

回答

2

如果我理解正确的,你想用has()方法:

$lastPosts = Blog::orderBy('id', 'desc')->has('images')->take(3)->get(); 
+1

$ lastPosts =博客::排序依据( '身份证', '递减') - >有( '图片') - >与( '图片') - >取(3) - >获得(); –

1

获得后处理图像的另一种优化方法是如下

$lastPosts=Blog::orderBy('id','desc') 
     ->with(array('images'=>function($query){ 
         $query->select('id','image'....); 
       }))->take(3)->get(); 

在这里,在$查询 - >选择( )只能传递图像表中所需的那些列名称,而不是获取整个数据,这样可以减少响应时间。