belongsTo与where条件的关系?

时间:2016-09-15 01:38:07

标签: sql laravel laravel-5 relational-database

我需要使用belongsTo relation

在我的查询中执行where条件

我的关系是:

 public function user() 
 {
   return $this->belongsTo('App\User', 'user_id');
 }

我的查询是:

Post::with('user')->where('user.blocked', '<>', 1)->orWhere(function($query){
                             $query->where('posts.user_id', '=', ApiParam::get('user_id'))
                                   ->where('followers.following_id', '<>', 'NULL');
                      }) 
                       ->leftJoin('followers', function($join){
                            $join->on('followers.following_id', '=', 'posts.user_id')
                                 ->where('followers.user_id', '=', ApiParam::get('user_id'))
                                 ->where('followers.status', '=', Followers::USER_FOLLOW_STATUS_ACCEPT);
                       })
                        ->select('posts.*')
                        ->orderBy('posts.updated', 'DESC')
                        ->limit(20)
                        ->get();

但是当运行时,我收到以下错误:Column not found: 1054 Unknown column 'user.blocked' in 'where clause'

当我在查询中使用(&#39;&#39;)关系时,如何使用where where条件?

1 个答案:

答案 0 :(得分:0)

可以使用Constraining eager loads.您已在代码中使用的内容完成此操作。

Post::with(['user'=>function($query)
  {
      $query->where('blocked', '<>', 1)
  }])->get();