Cakephp 3.6 包含
Cakephp 3.6 contain
我的 Cakephp 项目有点小问题。
我在 StudentController 中有这个 get 函数用于查看操作。
$student = $this->Students->get($id, [
'contain' => ['Courses', 'LessonPresences', 'StudentNotes', 'StudentPayments']
]);
学生笔记由用户添加。通过 contain,我得到了带有添加此笔记的用户 ID 的 StudentNotes。我怎样才能得到这个用户的名字?
Student {#711 ▼
+"id": 1
+"name": "John"
+"lastname": "Doe"
+"email": "johndoe@gmail.com"
+"phone": "111222333"
+"address": "Brown Street"
+"add_date": FrozenTime @1531866000 {#347 ▶}
+"sign_date": FrozenDate @1531699200 {#350 ▶}
+"theory_count": 65
+"course_end": null
+"course_id": 1
+"student_notes": array:1 [▼
0 => StudentNote {#607 ▼
+"id": 1
+"s_content": "Test student's note"
+"add_date": FrozenTime @1532677715 {#606 ▶}
+"student_id": 1
+"add_user_id": 1
我有 "add_user_id" 是“1”。我怎样才能得到这个用户的名字?
在 StudentNotesTable
中有一个 belongsTo 关联
$this->belongsTo('Users', [
'foreignKey' => 'add_user_id',
'joinType' => 'INNER'
]);
只需将'Users'
添加到包含数组即可。可以有很多种方式,以下都是等价的
使用点分符号
'contain' => [
'Courses',
'LessonPresences',
'StudentNotes',
'StudentNotes.Users',
'StudentPayments',
]
使用数组
'contain' => [
'Courses',
'LessonPresences',
'StudentNotes' => ['contain' => ['Users']],
'StudentPayments',
]
使用可调用
'contain' => [
'Courses',
'LessonPresences',
'StudentNotes' => function ($q) {
return $q->contain(['Users']);
},
'StudentPayments',
]
我的 Cakephp 项目有点小问题。 我在 StudentController 中有这个 get 函数用于查看操作。
$student = $this->Students->get($id, [
'contain' => ['Courses', 'LessonPresences', 'StudentNotes', 'StudentPayments']
]);
学生笔记由用户添加。通过 contain,我得到了带有添加此笔记的用户 ID 的 StudentNotes。我怎样才能得到这个用户的名字?
Student {#711 ▼
+"id": 1
+"name": "John"
+"lastname": "Doe"
+"email": "johndoe@gmail.com"
+"phone": "111222333"
+"address": "Brown Street"
+"add_date": FrozenTime @1531866000 {#347 ▶}
+"sign_date": FrozenDate @1531699200 {#350 ▶}
+"theory_count": 65
+"course_end": null
+"course_id": 1
+"student_notes": array:1 [▼
0 => StudentNote {#607 ▼
+"id": 1
+"s_content": "Test student's note"
+"add_date": FrozenTime @1532677715 {#606 ▶}
+"student_id": 1
+"add_user_id": 1
我有 "add_user_id" 是“1”。我怎样才能得到这个用户的名字? 在 StudentNotesTable
中有一个 belongsTo 关联$this->belongsTo('Users', [
'foreignKey' => 'add_user_id',
'joinType' => 'INNER'
]);
只需将'Users'
添加到包含数组即可。可以有很多种方式,以下都是等价的
使用点分符号
'contain' => [
'Courses',
'LessonPresences',
'StudentNotes',
'StudentNotes.Users',
'StudentPayments',
]
使用数组
'contain' => [
'Courses',
'LessonPresences',
'StudentNotes' => ['contain' => ['Users']],
'StudentPayments',
]
使用可调用
'contain' => [
'Courses',
'LessonPresences',
'StudentNotes' => function ($q) {
return $q->contain(['Users']);
},
'StudentPayments',
]