Php 使用雄辩的语句执行查询时,获取单个集合而不是数组
我有这样一个数据库:Php 使用雄辩的语句执行查询时,获取单个集合而不是数组,php,laravel,eloquent,Php,Laravel,Eloquent,我有这样一个数据库: Portal: id User: id,portal_id Item: id,user_id 我希望在单个集合中获取门户中用户的所有项目 我有用户的id 我可以用数组甚至纯SQL来实现这一点,但我想知道是否有更好的方法: $users = user::where("portal_id",Auth::user()->portal_id)->get(); $i = 0; foreach($users as $user){ $items[$i] = item::
Portal: id
User: id,portal_id
Item: id,user_id
我希望在单个集合中获取门户中用户的所有项目
我有用户的id
我可以用数组甚至纯SQL来实现这一点,但我想知道是否有更好的方法:
$users = user::where("portal_id",Auth::user()->portal_id)->get();
$i = 0;
foreach($users as $user){
$items[$i] = item::where("user_id",$user->id)->get();
$i++
}
我希望所有内容都在同一个集合中,而不是数组中
有什么建议吗?您需要定义项目
和用户
之间的关系:
public function user()
{
return $this->belongsTo('App\User');
}
和用于筛选项目:
Item::whereHas('user', function ($) {
$q->where("portal_id", auth()->user()->portal_id);
})->get();
你们建立关系了吗?