【发布时间】:2021-02-26 15:57:18
【问题描述】:
我正在使用 Laravel 8。
假设在控制器中调用了 show() 函数,为我提供了一个特定的位置。 目标是返回具有该位置的视图,但事先将关系数据添加到 $location 变量。由于已经有一个位置但它缺少一些数据,我调用加载函数来延迟加载关系。另外,我还需要软删除客户,因此使用这样的闭包:
public function show(Location $location)
{
$location = $location->load([
'customers' => function($query) {
$query->withTrashed();
}]
);
return view('location.EditLocationView', ['location' => $location]);
}
现在,我面临一个问题。我只需要存储在 $location 变量中的客户名称,最好是在数组“['James', 'Christian' ... ]”中
我该怎么做?代码可能看起来与此类似:
public function show(Location $location)
{
$location = $location->load([
'customers' => function($query) {
$query->withTrashed()->select('names')->toArray();
}]
);
return view('location.EditLocationView', ['location' => $location]);
}
$location 应该是这样的:
$位置 = 姓名: .. 纬度:.. 液化天然气:.. 客户:['James', 'Christian' ...]
感谢您的帮助。
【问题讨论】:
标签: laravel load lazy-evaluation eager