在laravel中反向包含()?

我是laravel的新手,我试图根据它与另一个表的多对多关系从表中获取一行。

您知道何时传入多个 idcontain()以检查它们是否与该行有关系,如下所示:

$row->contains([4,6,9]);

我想扭转这一点,在那里我可以使用 id[4,6,9]从与它们链接的另一个表中获取任何行。


桃花长相依
浏览 157回答 1
1回答

郎朗坤

比方说,你有这两种型号:User与Role这使得许多一对多的关系。如果你正确定义了你的关系:/** User.php */public function roles(){    return $this->belongsToMany(Role::class);}——/** Role.php */public function users(){    return $this->belongsToMany(User::class);}然后你可以使用这种关系来完成你想要做的事情。从相关对象:$user = User::find(1);// getting all the roles attached with a user:$roles = $user->roles;// getting all the roles attached with a user that has certain ids:$roles = $user->roles()->whereIn('id', [2, 4, 6])->get();此外,您可以使用返回关系的集合实例找到所需的相关模型:$user = User::find(1);// getting all the roles attached with a user:$roles = $user->roles;// getting a specific role attached to a user:$specific_role = $roles->where('id', 6)->first();
打开App,查看更多内容
随时随地看视频慕课网APP