Laravel雄辩的关系-不抓取基于条件



我想获取所有的id&User表中的name满足条件,Orders表中的order_userId==User表中的idorder;Orders表的uploadId列的值为false&null分别。下面的代码返回User表中数据的所有行,而不检查我指定的where条件。我怎样才能解决这个问题?

$data = User::with(['orders'=>function ($query){
$query->where('order', false);
$query->whereNull('uploadId');
}])->pluck('name', 'id');

用户模型

public function orders()
{
return $this->belongsTo(Orders::class, 'order_userId', 'id');
}
上面的代码给出如下输出:
{
"id": 2,
"name": "jen",
"orders": null
},
{
"id": 3,
"name": "jos",
"orders": null
}

Try

$data = User::whereHas('orders', function ($query) {
$query->where('order', false);
$query->whereNull('uploadId');
})->pluck('name', 'id');

试试这个解决方案:

正确的关系是,User有多个命令.

用户模式:

public function orders()
{
return $this->hasMany(Orders::class, 'order_userId', 'id');
}

Checkout this also.

$data = User::whereHas('orders', function ($query) {
$query->where([['order', false],['uploadId','>',0]]);
})->pluck('name', 'id');

最新更新