CakePHP: получение нескольких записей из одной модели для редактирования в одной форме - PullRequest
1 голос
/ 17 февраля 2012

Добрый день,

У меня есть модель с именем ProjectRequirement, которая принадлежит Project, поэтому Project имеет много ProjectRequirements

Когда я создал записи ProjectRequirement, я использовал этот метод:

<?php
     echo $this->Form->inputs(array(
          'legend  => false,
          'fieldset' => false,
          'ProjectRequirement.1.description' => ...
          'ProjectRequirement.2.description' => ...
          'ProjectRequirement.3.description' => ...
     ));
?>

Я сделал это, чтобы использовать метод saveMany () для сохранения нескольких записей одновременно. Однако, когда я хочу снова отредактировать эти записи в той же форме, я не вижу возможности это сделать. Я сохранил ту же структуру именования полей и попытался установить данные следующим образом:

<?php
     $this->request->data = $this->ProjectRequirement->find('all', array('conditions' => ...));
?>

A pr (); показывает, что записи возвращаются, но они не заполняют поля формы. Если я уберу числа и просто у меня будет одно поле, подобное этому:

<?php
     echo $this->Form->inputs(array(
          'legend  => false,
          'fieldset' => false,
          'ProjectRequirement.description' => ...
     ));
?>

Работает нормально. Как я могу установить данные таким образом, чтобы несколько записей из ProjectRequirement были установлены для нескольких полей ввода-вывода? Или я не могу?

Повторюсь: у меня нет проблемы с сохранением нескольких записей, у меня проблема с получением нескольких записей для отображения.

С уважением, Simon

1 Ответ

0 голосов
/ 17 февраля 2012

Когда вы создаете форму для СОХРАНЕНИЯ многих полей, вы называете поля такими:

  • ProjectRequirement.1.name ...
  • ProjectRequirement.2.name ...
  • ProjectRequirement.3.name ...
  • ...

Однако при извлечении данных это не тот же сценарий, и здесь применяются общие правила для массивов и принципы работы индексации.Поэтому просто измените мои поля так:

  • ProjectRequirement.0.name ...
  • ProjectRequirement.1.name ...
  • ProjectRequirement.2.name ...
  • ...

Работал, потому что япроверял только одну запись в базе данных, и эта строка имела бы индекс 0, а не 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...