将带有子查询的原始查询转换为eloquent

时间:2017-07-28 09:58:35

标签: mysql laravel-5 eloquent

我有一个子查询的以下工作查询工作正常我想转换为Eloquent因为我想坚持我的用户模型的其他关系

router-outlet

我已经有一个由(select * from ( select p.from, a.account_id, count(*) as num from accounts as a inner join accounts_prop as p on (a.account_id = p.account_id) group by p.account_id having num = 1 ) query where year(query.von) = 2017 表)表示的用户模型和一个用(accounts表)表示的属性模型

properites关系是一对多的

用户

User -> Property

财产

public function properties()
{
   return $this->hasMany('App\Property', 'account_id', 'account_id');
}

输出应该返回所有具有一个Property和property匹配当前日期的用户。

在用于测试目的的原始查询中,我使用的是常量

1 个答案:

答案 0 :(得分:0)

实际上似乎像

一样
User::whereHas('properties', function($query){

            $query = $query->where('von', '=', Carbon::now()->format('Y-m-d'))
                           ->havingRaw('count(account_id) = 1')
                           ->with('department');

        })->get();