Laravel Eloquent 关系 - 不是基于条件获取
Laravel Eloquent Relationship - not fetching based on condition
我想从 User
table 中获取所有 id
& name
满足条件 order_userId
of Orders
[= User
table 的 37=] == id
和 Orders
table 的 order
& uploadId
列的值为 false
和 null
分别。如果数据来自 User
table,则下面的代码 returns 所有行都没有检查我指定的 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
}
试试这个解决方案:
正确的关系是,用户有很多订单。
用户模型:
public function orders()
{
return $this->hasMany(Orders::class, 'order_userId', 'id');
}
尝试
$data = User::whereHas('orders', function ($query) {
$query->where('order', false);
$query->whereNull('uploadId');
})->pluck('name', 'id');
也检查这个..
$data = User::whereHas('orders', function ($query) {
$query->where([['order', false],['uploadId','>',0]]);
})->pluck('name', 'id');
我想从 User
table 中获取所有 id
& name
满足条件 order_userId
of Orders
[= User
table 的 37=] == id
和 Orders
table 的 order
& uploadId
列的值为 false
和 null
分别。如果数据来自 User
table,则下面的代码 returns 所有行都没有检查我指定的 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
}
试试这个解决方案:
正确的关系是,用户有很多订单。
用户模型:
public function orders()
{
return $this->hasMany(Orders::class, 'order_userId', 'id');
}
尝试
$data = User::whereHas('orders', function ($query) {
$query->where('order', false);
$query->whereNull('uploadId');
})->pluck('name', 'id');
也检查这个..
$data = User::whereHas('orders', function ($query) {
$query->where([['order', false],['uploadId','>',0]]);
})->pluck('name', 'id');