Laravel 急切加载 - 仅加载特定列

47

我正在尝试在Laravel中进行贪婪加载模型,但只返回特定的列。我不想呈现整个贪婪加载的表格。

public function car()
{
    return $this->hasOne('Car', 'id')->get(['emailid','name']);
}

我遇到了以下错误:

log.ERROR:异常'Symfony\Component\Debug\Exception\FatalErrorException',消息为“调用未定义的方法Illuminate\Database\Eloquent\Collection::getAndResetWheres()”


->get(['col','col2','col3']); - mercury
11个回答

0
有时候你需要将你的关系泛化,这样才能更容易地调用。
public function car()
{
    return $this->hasOne('Car', 'id');
}

在获取数据时,您可以指定需要的列。

$owners = Owner::with(['car' => function($query) { // eager loading
            $query->select('emailid','name');
           }
          ])->get();

foreach($owners as $owner){
    $owner->car->emailid;
    $owner->car->name;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接