【发布时间】:2020-12-05 05:26:14
【问题描述】:
为什么
Order::with(['products'=>function($q){
$q->select('name', 'price', 'quantity')->orderBy('name','asc');
}])->paginate($length);
返回所有订单及其各自的产品数据,但是
Order::with(['products'=>function($q){
$q->select('name', 'price', 'quantity')->orderBy('name','asc');
}])->select('pickup_date', 'pickup_time', 'remark')->paginate($length);
给我所有我想要的订单数据,但是一个空的产品数组?
我想从 order 表中选择一些特定的列,并从 products 表中选择一些特定的列。我该怎么做?
仅供参考: Orders-products 与模型是多对多的关系: 订购型号:
public function products()
{
return $this->belongsToMany('App\Models\Product')->withTimestamps();
}
产品型号:
public function orders()
{
return $this->belongsToMany('App\Models\Order')->withTimestamps();
}
【问题讨论】:
-
你的选择方法会是这样的
select('products.id as product_id', 'pickup_date', 'pickup_time', 'remark')
标签: laravel eloquent eager-loading