我正在检索一堆数据,出于某种原因某些数据被破坏。例如,我有一些Post模型,每个模型都与评论模型(hasMany)相关,并且每个评论模型都属于一个用户。检索数据时,这里就是我从数据库中获取的意见:CakePHP 1.2.6/PHP5.2.12数组中的循环错误分配引用
[Post] => Array
(
)
[Comments] => Array
(
[0] => Array
(
[content] => "2010 has definitely been a busy year!"
[created] => 2010-02-10 13:47:15
[user_id] => 18
[post_id] => 1
[User] => Array
(
[id] => U8
[username] => Uace
[first_name] => Uace
)
[_explicitType] => Comment
)
[0] => Array
(
[content] => "I can't wait..."
[created] => 2009-12-10 13:57:36
[user_id] => 18
[post_id] => 1
[User] => Array
(
[id] => U8
[username] => Uace
[first_name] => Uace
)
[_explicitType] => Comment
)
)
每个评论的第一个字符[I] [用户]数组已经被替换成一个大写的U,但在每种情况下它应该是不同的(例如ID为18,Jace的用户名等)。
我将其追溯到一个数组操作,我正在为afterFind()函数中的Flex交互(谢谢,PawełMysior!)分配_explicitType字段。这里就是我被困在_explicitType循环:
if (is_array($results)) {
foreach ($results as &$item)
{
$item['_explicitType'] = $this->name;
}
} else {
$item[$this->name]['_explicitType'] = $this->name;
}
我认为它具有与参考分配的事,但我想不出为什么它正在发生。
FOR循环似乎在不破坏数组的情况下工作,但在试图处理没有数字索引的数组时,它会变得混乱。 –