【发布时间】:2017-05-29 19:09:15
【问题描述】:
我在用户和类别之间有多对多的关系。在第三个表中,我有一个名为 category_id 的字段来引用每条记录所属的类别。我正在设置一个系统,一旦用户登录,我希望他们看到具有他们在注册时选择的类别的 category_id 的记录。
我的代码如下所示
我在用户模型中有这种关系设置,
public function categories()
{
return $this->belongsToMany('App\Category');
}
还有这个
public function userCats()
{
return $this->categories()->get();
}
在类别表中我有这个关系设置
public function users()
{
return $this->belongsToMany('App\User');
}
在我的第三个表控制器中,我有以下代码
if(Auth::check()){
$servo = Jumong::postOnly()->whereIn('category_id', Auth::user()->userCats())->get();
} else {
$servo = Jumong::all()->where('type','P');
}
dd($servo);
问题在于下面的部分,
Auth::user()->userCats()
它只返回 Jumong 表中的最后 2 条记录,而且还不止这些。 如果我用数组替换它,它将返回正确的结果。
关于我缺少什么的任何想法?
【问题讨论】:
-
查看 laravel 文档以了解如何使用数据透视表
标签: php laravel eloquent relationships