在 CakePHP 2.x 中有递归设置,根据设置,它的查询会深入 X 层......
我看了下面的问题,但他们没有回答我的问题......
现在,我正在尝试递归检索下表
+----+------------+------------+------------+------------------------------------------+
| id | message_id | account_id | to_user_id | message |
+----+------------+------------+------------+------------------------------------------+
| 1 | 0 | 10 | 1617 | asd a sfg sdfhgdfh gf dgh dfghfdgh |
| 2 | 1 | 1617 | 10 | afdkjnjdsf ndfs jfsd kjlfdgs kljgfsd jkl |
| 3 | 2 | 10 | 1617 | t5ge6h65h 6e6heh6eh6 he h e |
| 4 | 3 | 1617 | 10 | kljnnjkl nkl njkln jkln jkl |
| 5 | 4 | 10 | 1617 | fffffffffffffff |
+----+------------+------------+------------+------------------------------------------+
使用下表定义
$this->belongsTo('Messages', [
'foreignKey' => 'message_id',
'joinType' => 'INNER'
]);
$this->hasMany('Replies', [
'className' => 'Messages',
'foreignKey' => 'message_id',
'propertyName' => 'replies'
]);
以及下面的 find 语句
$message = $this->Messages->find('all', ['contain' => ['Replies']])->where(['Messages.id' => $id])->first();
这些是我的结果
App\Model\Entity\Message Object
(
[id] => 1
[account_id] => 10
[message] => asd a sfg sdfhgdfh gf dgh dfghfdgh
[message_id] => 0
[to_user_id] => 1617
[replies] => Array
(
[0] => App\Model\Entity\Message Object
(
[id] => 2
[account_id] => 1617
[message] => afdkjnjdsf ndfs jfsd kjlfdgs kljgfsd jkl
[message_id] => 1
[to_user_id] => 10
[[new]] =>
[[accessible]] => Array
(
[account_id] => 1
[message] => 1
[message_id] => 1
[to_user_id] => 1
[messages] => 1
)
[[dirty]] => Array
(
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => Replies
)
)
[[new]] =>
[[accessible]] => Array
(
[account_id] => 1
[message] => 1
[message_id] => 1
[to_user_id] => 1
[messages] => 1
)
[[dirty]] => Array
(
)
[[original]] => Array
(
)
[[virtual]] => Array
(
)
[[errors]] => Array
(
)
[[invalid]] => Array
(
)
[[repository]] => Messages
)
我的问题是,如何获取要填充的“回复”数组项的“回复”属性?即:如何在回复中填充回复的第二和第三等级别?