gpt4 book ai didi

php - Laravel 获取二级关系

转载 作者:行者123 更新时间:2023-12-03 20:35:39 24 4
gpt4 key购买 nike

我有三个数据库表:

+------+-----------+---------------------+
| user | user_type | user_type_relations |
+------+-----------+---------------------+

每个用户可以有多种类型,但一种用户类型只能有一个用户。为了存储这种关系,我使用了第三个关系表,其结构如下:
+---------------------+
| user_type_relations |
+---------------------+
| id |
| user_id |
| user_type_id |
+---------------------+

我已经定义了我的模型中的关系,如下所示:
User模型:
public function userTypeRelations()
{
return $this->hasMany('UserTypeRelations', 'user_id', 'id');
}
UserType模型:
public function userTypeRelation()
{
return $this->hasMany('UserTypeRelations', 'user_type_id', 'id');
}
UserTypeRelations模型:
 public function user()
{
return $this->hasMany('User', 'id', 'user_id');
}

public function userType()
{
return $this->hasMany('UserType', 'id', 'user_type_id');
}

这就是我在将其传递给 View 之前尝试访问 Controller 中特定用户的用户类型的方式:
$users = User::with('userTypeRelations')->with('userType')->orderBy($order)->where('status', 'active')->paginate(10);

我以为首先我会得到关系表的值,然后我会很容易地得到每个用户的用户类型,但我收到以下错误:
BadMethodCallException

Call to undefined method Illuminate\Database\Query\Builder::userType()

我究竟做错了什么?

最佳答案

您可以将多个嵌套关系同时传递给对 with 的单个调用,从而将它们预先加载到模型中。 :

User::with('userTypeRelations.userType') ...

Source

关于php - Laravel 获取二级关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com