我被一些相当简单的东西困住了:
SN hasMany NA。我使用包含的 NA 检索数据,条件是
$this->find('all',array(
'recursive' => -1,
'conditions' => array(
'SN.deleted IS NULL',
'SN.user_id' => $user_id,
),
'contain' => array(
'NA' => array('conditions'=> array('wave' => 1) ),
)
));
SN 和 NA 都充当 Containable。
我得到了数据,但 NA 没有嵌套在 SN 数组中:
array(
(int) 0 => array(
'SN' => array(
'id' => '1',
'user_id' => '1',
),
'NA' => array(
(int) 0 => array(
'id' => '1',
'SN_id' => '1',
'wave' => '1',
)
)
),
这会导致使用 FormHelper 出现很多烦人的行为(我目前通过根据需要按摩数据来解决这个问题,但我仍然想了解我做错了什么),例如从 Containable 返回的数据,我无法指定路径。
debug($this->data[$s]['NA'][0]['wave']); # would work
echo $this->Form->input("$s.NA.0.role"); # doesn't work
# leads to data[SN][0][NA][0][role] # SN is auto-prepended
echo $this->Form->input("$s.SA.NA.0.role"); # what I use after massaging the data so it's nested
即使我尝试同时按摩数据和错误消息数组,我仍然遇到验证消息未显示在应有的位置的问题。