Laravel-在范围中隐藏列

时间:2019-05-17 18:09:11

标签: laravel eloquent

我在我的范围内添加了一个关系:

public function apply(Builder $builder, Model $model)
{
    $builder->with('user');
}

如何防止提取所有列?我尝试设置:

->with('user:col1,col2')

但这种关系似乎不再“渴望”。

1 个答案:

答案 0 :(得分:2)

您必须始终将ID与热切的加载关系包括在内。因此,请确保您所请求的列中包含ID。没有ID,它就无法将相关模型映射回原始模型,因此它不得不在第一次使用它时重新请求它,而不是渴望被加载。

public function apply(Builder $builder, Model $model)
{
    $builder->with('user:id,col1,col2');
}