laravel - Laravel Eloquent 连接多表
问题描述
我的雄辩加入有一些问题。我有 4 个表关系
贷款表/贷款
loan_id | quantity | user_id
1 | 4 | 1 .
详细贷款表/Loandetails
loandetail_id | loan_id | inventory_id
1 | 1 | 4 .
库存表/库存
inventory_id | name_inventory
4 | Keyboard .
用户表/用户
user_id | Name
1 | This is my name
我想要这样的结果与雄辩的查询
{
'loan_id' => 1,
'inventory' => 'keyboard',
'user' => 'This is my name',
'quantity' => 4
}
解决方案
您需要在模型中映射以下关系。
贷款.php
public function loanDetails()
{
return $this->hasMany(LoanDetail::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
LoanDetails.php
public function inventory()
{
return $this->belongsTo(Inventory::class);
}
public function loan()
{
return $this->belongsTo(Loan::class);
}
Arter,您可以这样做从数据库中查询数据,
$loan = Loan::with('loanDetails.user', 'loanDetails.inventory')->find(1);
然后得到你想要的结果,
return [
'loan_id' => $loan->id,
'inventory' => $loan->inventory, //this will return the full inventory object you can do $loan->inventory->name_inventory to access attributes
'user' => $loan->user->name,
'quantity' => $loan->quantity
]
推荐阅读
- reactjs - reactjs - redux 表单和材质 ui 框架 - 拖放文件上传器
- ios - 推送后导航栏重叠状态栏
- mips - 这是一个关于 Mips 程序错误的问题
- javascript - 是否可以设置坐标数组的半径?
- java - 试图获得奖励积分,但我无法设置图书的价值
- c# - MIP SDK 1.7.133 .NET Core 3.1 支持
- java - 断言测试不会通过,只是 - Selenium 问题
- java - 咖啡因缓存 X509Certificate
- django-templates - 无法在我的 html 模板中获取数据表单 selectpicker 类
- c - 如何在 C99 中制作数学对数函数?