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

У меня все еще есть проблемы с сообщениями проверки, которые не отображаются в том месте, где они должны быть, хотя я пытался как массировать данные, так и массивы сообщений об ошибках.

0 ответов

Другие вопросы по тегам