我有以下三个实体:
客户端具有个人id外键和区域id外键。一个人可以有很多客户,每个客户都属于一个地区。我正在尝试使用Laravel中的单个查询获取一个人的客户列表以及每个客户的区域。我曾经亲自与客户建立过很多关系,这很好。我正在尝试使用hasManyThrough方法来查询一个人,并获取他的客户和他们所在的地区,但我无法让它工作!我的关系设置为:
但似乎系统不能建立所需的内连接,我得到错误,因为region.person_id不存在!
查询代码为:
$person = Person::with("clients")->get();
就本人而言:
public function clients()
{
return $this->hasManyThrough(Region::class, Client::class);
}
我试过其他组合,但都没用。我跟着这个https://laravel.com/docs/8.x/eloquent-relationships#has-many-through
谢啦
您应该编写hasManyThrough(Client::class,Region::class)
如果它给出键错误,那么精确地定义键。在hasManyThrough中定义键
return $this->hasManyThrough(Client::class, Region::class);
参考链接
您可以尝试的一件事是:
$person = Person::with(['client', 'client.region'])->get();
这是假设您在每个模型中都有正确的个体关系。
但是hasManyThrough也应该有效,你能把$person的输出添加到你的问题中吗?
问题内容: 我目前正在阅读有关实体关联的Hibernate文档,但遇到一些困难却难以理解。它在本质上做的区别和联系。尽管我在实际项目中使用了它们,但是我无法完全理解它们之间的差异。据我了解,如果一个表/一个实体与另一个实体有关联,则该关联应来自另一侧。那么,我们应该如何根据具体情况决定选择哪个呢?它又如何影响数据库/查询/结果?到处都有很好的例子吗? PS:我认为这与问题相关,如果有人可以解释关联
toString()]hibernate:/*插入com.pissolato.api.entitys.sale*/插入到sale(company,created,description,discount,sub_value,type,updated,user,value)值(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
问题内容: 我正在使用带有注释的Hibernate(在spring),并且我有一个对象,该对象具有有序的多对一关系,该对象的子对象具有复合主键,该子对象的一个组成部分是返回到该对象的外键。父对象的ID。 结构看起来像这样: 我尝试了各种注释的组合,但似乎都不起作用。这是我能想到的最接近的: 经过长时间的实验后,我得出了这一结论,在该尝试中,我进行的其他大多数尝试都产生了由于各种原因甚至无法加载
我有实体项目与投标有一对多的关系 型号/项目。JAVA 模型/投标。JAVA 我想获取一个项目的附加出价,出价是按其金额排序的。但它似乎并不像预期的那样起作用 波斯特数据 选择 输出是
我有6张桌子: 现在,我想添加一个自定义函数到我的雄辩模型中的权限名为getUsersBackPersion()。 现在,用户可能拥有他所赋予的角色的权限(用户表在user_roles上连接,在role_permissions上连接该表,最后一个表在权限上连接。 或者用户在用户权限表中设置了特定权限(在用户表上加入用户权限表,在用户权限表上加入权限表) 如何创建一个雄辩的模型函数,返回所有具有特定
问题内容: 由于使用a 和批注之间都存在一对多关系,因此两者之间有什么区别? 问题答案: 我相信主要用于映射非实体(可嵌入或基本),而用于映射实体。因此,使用哪种取决于您要实现的目标。