我想獲取所有id與name從User表中滿足條件,order_userId的Orders表==id的User表order和uploadId列Orders表中有值false和null分別。如果來自User表的資料不檢查我指定的 where 條件,下面的代碼將回傳所有行.. 我該如何解決這個問題?
$data=User::with(['orders'=>function ($q){
$q->where([
'order'=>false,
'uploadId'=>null]);
}])->select('id', 'name')->get();
用戶模型
public function orders()
{
return $this->belongsTo(Orders::class, 'order_userId', 'id');
}
上面的代碼給出了如下輸出:
{
"id": 2,
"name": "jen",
"orders": null
},
{
"id": 3,
"name": "jos",
"orders": null
}
uj5u.com熱心網友回復:
嘗試
$data = User::whereHas('orders', function ($query) {
$query->where('order', false);
$query->whereNull('uploadId');
})->pluck('name', 'id');
uj5u.com熱心網友回復:
試試這個解決方案:
正確的關系是,用戶有很多訂單。
用戶模型:
public function orders()
{
return $this->hasMany(Orders::class, 'order_userId', 'id');
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331008.html
標籤:php 拉拉维尔 雄辩 laravel-8 雄辩的关系
