laravel - Laravel 从具有一对一关系的 2 列中获取值
问题描述
我有 2 张桌子,并且有一对一的关系。第二个表使用第一个表中的 FK,我想显示一个包含所有值的列表。
public function index(Request $request)
{
$listOfPersons = new Person();
$listOfRegisters = new Register();
$listOfRegisters->listOfPersons()->associate();
return $listOfRegisters;
}
在寄存器模型
public function people(){
return $this->hasOne(Person::class);
}
个人模型
public function register(){
return $this->hasOne(Register::class);
}
解决方案
如果您只想要一个包含所有值对的列表,那么以下代码就足够了:
public function index(Request $request)
{
$registers = Register::all();
$list = [];
foreach($registers as $register){
array_push($list,['register'=> $register, 'person'=>$register->people]);
}
return $list;
}
但请记住,您可以只拥有寄存器列表并通过关系访问该人。此外,您应该将hasOne
关系更改为belongsTo
in register。
我希望这会有所帮助。
推荐阅读
- r - 来自 plm 包的 pFtest 问题返回 p-value = NA
- sql-server - 我可以将参数传递给 SQL 代理作业吗?
- snowflake-cloud-data-platform - 雪花存储过程 - 非空中的空
- non-linear-regression - Ransac 用于对具有多个异常值的数据集进行非线性曲线拟合
- javascript - 在 WordPress 中仅使用 CSS 和 JavaScript 显示子菜单
- python - 您可以通过从 Gmsh 读取“物理名称”在 FiPy 中创建单独的网格吗?
- react-hook-form - react hook form + material-table:如何使用react hook form和material table实现表单验证
- db2 - 如何在 where 子句中选择一个或所有值
- javascript - Django 模板无响应
- database - Gorm删除但保持ID增加