我正在尝试在 Laravel 5 中创建一个应用程序来跟踪患者的体检,以便我可以创建患者历史记录,我使用 Eloquent 作为我的模型抽象推荐。
为此,我使用 laravel 迁移创建了三个表和一个数据透视表,如下图所示:

用户可以是医生或管理员,他们为他们所做的特定考试输入患者的分数结果,例如我有一个数据透视表,其中包含三个外键来关联三个实体:
在 Eloquent 中,我按照 Laravel 文档多对多创建了这些多对多模型,以支持提议的业务逻辑:
<?php
// Patient.php
class Patient extends Model
{
public function exams() {
return $this->belongsToMany('App\Exam', 'exam_patient');
}
}
// Exam.php
class Exam extends Model
{
public function patients()
{
return $this->belongsToMany('App\Patient', 'exam_patient');
}
public function users()
{
return $this->belongstoMany('App\User', 'exam_patient');
}
}
// User.php
class User extends Model
{
public function exams() {
return $this->belongsToMany('App\Exam', 'exam_patient');
}
}
Run Code Online (Sandbox Code Playgroud)
在 tinker 中,我尝试在进行重大更改之前模拟一个常见用例:医生对患者进行检查: …
我有两个想要相交的数组。我得到了这两个数组:
{{ 转储(数组1) }}
array(6) {
[0]=>
array(2) {
["id"]=>
int(121)
["text"]=>
string(3) "uno"
}
[1]=>
array(2) {
["id"]=>
int(122)
["text"]=>
string(3) "dos"
}
[2]=>
array(2) {
["id"]=>
int(123)
["text"]=>
string(4) "tres"
}
[3]=>
array(2) {
["id"]=>
int(124)
["text"]=>
string(6) "cuatro"
}
[4]=>
array(2) {
["id"]=>
int(125)
["text"]=>
string(5) "cinco"
}
[5]=>
array(2) {
["id"]=>
int(126)
["text"]=>
string(4) "seis"
}
}
Run Code Online (Sandbox Code Playgroud)
{{ 转储(数组2) }}
array(3) {
[0]=>
array(2) {
["id"]=>
int(124)
["text"]=>
string(6) "cuatro"
}
[1]=>
array(2) {
["id"]=>
int(125) …Run Code Online (Sandbox Code Playgroud)