如何将用户元素添加到用户集合中



我有用户和场地。在表中user_venue i存储多个连接(ManyTomany(

$rUsers = DB::table('user_venue')->where('venue_id',$user->id)->get();
$resUsers = collect();
foreach ($rUsers as $key => $i) {
    $id = $i->user_id;
    $u = User::findOrFail($id);
    $resUsers->push($u);
}

您可以看到,我想将user模型存储到Collection $resUser中,但它的返回我错误页面,不要加载视图...为什么?

当您是$u->push($resUsers)时,您正在尝试推入单个User记录/实例。我相信您想做以下操作:

$resUsers->push($u);

这将将单个User记录推入$resUsers集合。

如果您有多一的关系,并且想加载与给定的Venue链接的User S,为什么不使用关系?这是更有效的,因为您只能与实际策略相反一次数据库。

# Venue.php
public function users()
{
    return $this->belongsToMany(User::class);
}

然后在您的控制器中:

# VenueController.php
public function myFunction(Request $request)
{
    $venue = Venue::find('your-venue-id'); // getting a venue
    $users = $venue->users; // <-----
    return view('users')->with('users', $users);
}

在上面的代码中,$users变量是集合的一个实例,它包含了符合查询的User模型的集合,据我所知,该查询是您所需的输出。

相关内容

最新更新