CakePHP FormHelper не согласен с данными, возвращаемыми с помощью Containable
Я застрял с чем-то довольно простым:
SN имеет много 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 действуют как контейнеры.
Я получаю данные, но 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
У меня все еще есть проблемы с сообщениями проверки, которые не отображаются в том месте, где они должны быть, хотя я пытался как массировать данные, так и массивы сообщений об ошибках.