Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以雄辩的方式嵌套一对多关系_Php_Mysql_Laravel_Model_Eloquent - Fatal编程技术网

Php 以雄辩的方式嵌套一对多关系

Php 以雄辩的方式嵌套一对多关系,php,mysql,laravel,model,eloquent,Php,Mysql,Laravel,Model,Eloquent,假设我有三个模型与这种关系 用户 hasMany(应用程序/组织) 组织机构 hasMany(应用程序/订单) 订单 有一个级别我可以直接去 用户->组织()->get() 并让所有与用户相关的组织参与进来。但每个组织也有0..多个订单实体。所以我想这样做: user->organizations()->orders()->get() 从某个用户处获取来自所有组织的所有订单的列表。这样做可能吗?您只需在用户模型上实现关系即可 public function orders() { retu

假设我有三个模型与这种关系

用户 hasMany(应用程序/组织)

组织机构 hasMany(应用程序/订单)

订单

有一个级别我可以直接去 用户->组织()->get()

并让所有与用户相关的组织参与进来。但每个组织也有0..多个订单实体。所以我想这样做:

user->organizations()->orders()->get()


从某个用户处获取来自所有组织的所有订单的列表。这样做可能吗?

您只需在
用户
模型上实现关系即可

public function orders()
{
    return $this->hasManyThrough(Order::class, organisation::class);
}
然后你可以这样查询

$user->orders()->get();

如果你尝试一下,你会发现这是可能的。还可以通过
\User::with([“Organizations”,“Organizations.orders”])->find()预加载它们。
您可以在此处使用
hasManyThrough()
。@Gayan谢谢。这就解决了问题。如果你愿意,把它写下来作为答案,然后我可以检查它是否正确。@Christoff我把答案贴了出来,很高兴你发现它很有用:)