laravel ->get() 没有正确返回关系
laravel ->get() not returning relations properly
我有一个在我的索引控制器中工作的条件查询,它应该 return eloquent 关系但并不总是 return 一个可访问的数组索引:
$customers = Customer::with('orders', 'regions')->orderBy('created_at', 'desc')->whereHas('regions', function($query)
{
$user_id = Auth::user()->id;
$current_user = User::with('roles')->where('id', '=', $user_id)->latest()->first();
$role_name = $current_user->roles[0]->name;
if($role_name == 'admin_master'){$query->whereIn('region', array(11, 7));}
}
)->get();
问题是相关数组并不总是可访问的,例如 order[1] 并且在我 dd($customers);
时显示奇怪
#relations: array:5 [▼
"orders" => Collection {#442 ▼
#items: array:2 [▼
0 => Order {#446 ▶}
1 => Order {#447 …25}
]
}
对于未来的用户,get
方法将结果作为集合获取。您可以在其上链接 toArray()
方法以将其转换为数组。
所以它会像 $query->get()->toArray()
我有一个在我的索引控制器中工作的条件查询,它应该 return eloquent 关系但并不总是 return 一个可访问的数组索引:
$customers = Customer::with('orders', 'regions')->orderBy('created_at', 'desc')->whereHas('regions', function($query)
{
$user_id = Auth::user()->id;
$current_user = User::with('roles')->where('id', '=', $user_id)->latest()->first();
$role_name = $current_user->roles[0]->name;
if($role_name == 'admin_master'){$query->whereIn('region', array(11, 7));}
}
)->get();
问题是相关数组并不总是可访问的,例如 order[1] 并且在我 dd($customers);
时显示奇怪#relations: array:5 [▼
"orders" => Collection {#442 ▼
#items: array:2 [▼
0 => Order {#446 ▶}
1 => Order {#447 …25}
]
}
对于未来的用户,get
方法将结果作为集合获取。您可以在其上链接 toArray()
方法以将其转换为数组。
所以它会像 $query->get()->toArray()