在Laravel中使用LOAD方法时是否可以指定某些列,因为我不希望选择所有列。
假设我有这个:
$usersWithDepartments = User::with('department')->get();
这可能吗?
$usersWithDepartments = $usersWithDepartments->load('equipment', function($query)
{
$query->select('table_equipment.name');
})
我尝试在加载方法之后使用select方法,但是它说“select method not exists”
解决方法?
答案 0 :(得分:0)
是的,您可以指定列,而不是select()
,使用get()
这是示例
$usersWithDepartments = $usersWithDepartments->load('equipment'=> function($query)
{
$query->get(['equipment.name', 'equipment.title']);
})
答案 1 :(得分:0)
将其更改为
$usersWithDepartments->load(['equipment'=>function($query)
{
$query->select('user_id','table_equipment.name');
}])
load 如果要将闭包传递给它作为第二个参数,则接受一个数组。并且不要忘记将user_id传递给select或您的相关记录将不会被加载