gpt4 book ai didi

php - Laravel - 四个层次的深层关系

转载 作者:行者123 更新时间:2023-12-04 08:10:42 24 4
gpt4 key购买 nike

我试图在订单模型中映射用户和订单模型之间的关系。
一个订单有一个项目。项目有一个团队,团队有一个所有者/用户
这种关系有四个层次,如下所示:
订单 > 项目 > 团队 > 用户
我的数据库表如下:
应用\订单

id, 
project_id
应用\项目
id, 
name,
team_id
应用\团队
id
name
user_id
应用\用户
id
name
我的订单型号:
class Order extends Model{
function customer(){
// trying to map the relationship here
}
}
我想访问客户如下:
 $order =  Order::find(1);
echo $order->customer->name;
你能告诉我如何映射上述关系吗?

最佳答案

您可以通过在查询中包含连接来获取它,例如:

$data = Order::select('orders.*')
->join('projects', 'orders.project_id', '=', 'products.id')
->join('teams', 'projects.projects_id', '=', 'teams.id')
->join('users', 'teams.teams_id', '=', 'users.id')
->get();
对于 Eloquent,你可以使用这个 package .
您可以定义更深层次的关系:
订购 → 属于 → 项目 → 属于 → 团队 → 属于 → 用户 :
class Order extends Model
{
use \Znck\Eloquent\Traits\BelongsToThrough;

public function customer()
{
return $this->belongsToThrough('App\User', ['App\Team', 'App\Project']);
}
}

关于php - Laravel - 四个层次的深层关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65982079/

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