记录:fastadmin tp5 with 和 filed 合用导致field失效问题。
tp5中with使用时会将field中指定的字段给覆盖掉,变成全部字段。
解决方案:将field放在with之前使用
//获取排序靠前的8个商品
public function getFreeList()
{
return $this
->field('id,category_id,carlevel_id,name,zhidaojia,image,images')
->with(['category', 'carlevel'])
->where('fa_car.status', '=', 'normal')
->order(['fa_car.weigh' => 'desc'])
->limit(8)
->select();
}
若关联预载入的表也要显示部分字段,可使用匿名函数实现
//获取排序靠前的8个商品
public function getFreeList()
{
return $this
->field('id,category_id,carlevel_id,name,zhidaojia,image,images')
->with(['category'=>function($query){
$query->withField('id,pid,name,minprice,maxprice,image,status');
}, 'carlevel'=>function($query){
$query->withField('id,pid,name,image,status');
}])
->where('fa_car.status', '=', 'normal')
->order(['fa_car.weigh' => 'desc'])
->limit(8)
->select();
}