Laravel从深厚的关系中获取数据

Laravel从深厚的关系中获取数据,laravel,eloquent,relationship,one-to-many,laravel-7,Laravel,Eloquent,Relationship,One To Many,Laravel 7,我有三张桌子: 使用者 篮子 项目 身份证件 身份证件 身份证件 用户id 篮子标识 价格 你要找的关系很复杂 用户模式 公共功能项目 { 返回$this->hasManyThroughItem::class,Bucket::class; } 我认为你想用的方式是不可能实现的 可能的用途 $user->items->where'price',x; 如果定义自定义范围,则为 项目模态 公共函数scopeWherePrice$query,$value { 返回$query->where'price'

我有三张桌子:

使用者 篮子 项目 身份证件 身份证件 身份证件 用户id 篮子标识 价格
你要找的关系很复杂

用户模式

公共功能项目 { 返回$this->hasManyThroughItem::class,Bucket::class; } 我认为你想用的方式是不可能实现的

可能的用途

$user->items->where'price',x; 如果定义自定义范围,则为

项目模态

公共函数scopeWherePrice$query,$value { 返回$query->where'price',$value; } 用法

$user->items->wherePricex; 编辑

如果你真的想写一个像$user->itemsx这样的代码,你可以在用户模式上定义一个方法

请注意,这不是一个关系,只是另一个获取结果的方法

用户模式

公共功能物品$price { 返回此->项目->其中的'price',$price->get; }
你要找的关系很复杂

用户模式

公共功能项目 { 返回$this->hasManyThroughItem::class,Bucket::class; } 我认为你想用的方式是不可能实现的

可能的用途

$user->items->where'price',x; 如果定义自定义范围,则为

项目模态

公共函数scopeWherePrice$query,$value { 返回$query->where'price',$value; } 用法

$user->items->wherePricex; 编辑

如果你真的想写一个像$user->itemsx这样的代码,你可以在用户模式上定义一个方法

请注意,这不是一个关系,只是另一个获取结果的方法

用户模式

公共功能物品$price { 返回此->项目->其中的'price',$price->get; } 使用hasManyThrough定义模型中的关系:

用户模型

篮子模型

然后这样称呼它:

 $user->items(x);
这将以特定的价格返回所有用户项目及其对应的购物篮。

使用hasManyThrough定义模型中的关系:

用户模型

篮子模型

然后这样称呼它:

 $user->items(x);

这将以特定的价格返回所有用户项及其对应的篮子。

我使用laravel已经很长时间了,无法准确记住函数名,但我记得的是,用户和篮子之间应该有一种关系,获取关系,其中篮子中的用户id等于用户中的用户id,然后您可以在项目和篮子之间建立关系,因为在第一步之后,您将只有一个级别的关系,希望a对您有所帮助。祝你好运。我用laravel很久了,记不清确切的函数名,但我记得你应该在用户和篮子之间建立一种关系,获取关系,其中篮子中的用户id等于用户中的用户id,然后您可以在项目和篮子之间建立关系,因为在第一步之后,您将只有一个级别的关系,希望a对您有所帮助。祝你好运
 $user->items(x);