Nen*_*d M 0 count relationship laravel eloquent laravel-5
我有两张相关的桌子.
| id | reon_id | 名字|
| id | settlement_id | first_name | last_name | cipher_id |
在结算模型中他们的相关如下:
public function members()
{
return $this->hasMany('App\AddMember');
}
Run Code Online (Sandbox Code Playgroud)
所以,首先我需要reon_id为1的所有成员,所以我喜欢这样:
$members = Settlement::where('reon_id', '1')
->with('members')
->count();
Run Code Online (Sandbox Code Playgroud)
这很有效.但是现在,我需要同样的东西,但也需要cipher_id为1.如果我在 - > with('members')之后添加 - > where('cipher_id','1')我得到这个错误:
(2/2)QueryException SQLSTATE [42S22]:找不到列:1054'where子句'中的未知列'cipher_id'
哪里错了?
您需要使用whereHas来正确查询相关表.
$members = Settlement::with('members')->whereHas('members', function($query){
$query->where('cipher_id', 1);
})->where('reon_id', '1')->count();
Run Code Online (Sandbox Code Playgroud)
说明
WhereHas只接受满足条件的父母.在这种情况下,如果相关模型成员cipher_id不是1,则不会显示结算
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |