如何在为每个查询定义关注到预先加载的关系时选择要加载哪些列?
以下似乎无效:
class Partner extends Model
{
protected $with = [
'statistics',
'event' => function($query)
{
$query->select(['id', 'name']);
}
];
}
感谢。
答案 0 :(得分:0)
$with
用于指定每个查询必须加载的关系,而不是指定可见列。
要指定可见列,即应包含在查询中的列,您可以使用$visible
。
protected $visible = ['id','name'];
您可以使用$hidden
来指示laravel隐藏列
例如,您想要隐藏特定列。
protected $hidden = [
'password', 'remember_token',
];
或者,在您的关系方法中,您可以使用Select()
方法来定义应包含在该特定关系中的列。
Select()
方法接受要选择的字段数组。 这是强制性的
包括定义两个表之间关系的键(列名)。
例如,假设您有两个具有一对一关系的模型A和B,那么您可以执行以下操作。
public function A(){
return $this->belongsTo('App\Models\B')->Select(['id','name']);
}