CakePHP предварительно заполнить поле выбора на основе существующего выбора на связанной модели - PullRequest
1 голос
/ 24 марта 2011

Я пытаюсь предварительно заполнить это поле выбора состояния существующим выбором при редактировании записей.в связанной модели.

plan_details / view.ctp

echo $this->Form->input('State',array('empty' => false,'options' => $state));

plan_details_controller Функция просмотра:

$state = $this->PlanDetail->Plan->State->find('list');
    $this->set(compact('state', $state));
    debug($state);

Вывод массива в view.ctp (как и ожидалось):

Array
(
    [1] => Oregon
    [2] => Washington
)

Мое поле выбора выше по умолчанию равно 1 в массиве.Мне нужно по умолчанию использовать уже существующее выбранное значение.

Например, когда я добавил запись и выбранный Вашингтон (2), то при просмотре моего экрана редактирования предварительно выбранным значением должен быть Вашингтон сзначение 2.

Я застрял и треснул на некоторое время.Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 24 марта 2011

Если вы редактируете страницу, вам нужно установить $ this-> data для ее автоматического заполнения.В рамках вашего действия по редактированию

if (empty($this->data)) {
     $this->data = $this->PlanDetail->read(null, $id);
}

Это должно читаться в записи затем (обратите внимание на множественное число)

$states = $this->PlanDetail->Plan->State->find('list');
$this->set(compact('states'));

В вашей форме это должно читаться как

echo $this->Form->input('Plan.state_id',array('empty' => false));

Iнайти ваш подход немного запутанным, но вышесказанное должно работать.Это форма для редактирования Plan, PlanDetail или обоих

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