Пополнить отношения в форме в CakePHP в режиме редактирования - PullRequest
2 голосов
/ 09 декабря 2010

Я получил контроллер с именем Posts, модель под названием Content, которая должным образом связана с другими моделями, такими как Category и Location.

На мой взгляд, для добавления «Контента» я успешно заполнил списки множественного выбора категориями и местоположениями, которые можно выбрать для связи с постом. Сохранение все работает отлично.

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

$this->data = $this->Content->read();
$this->set('locations',$this->Content->Location->find('list',array('fields' => array('id','location'))));   
$this->set('categories',$this->Content->Category->find('list',array('fields' => array('id','category'))));   

И вот что я понял:

echo $this->Form->input('Location', array('type' => 'select','multiple' => 'true','options' => $locations));
echo $this->Form->input('Category', array('type' => 'select','multiple' => 'true','options' => $categories));

Что мне здесь не хватает? Как получить уже связанные местоположения и категории, выбрать в списках множественного выбора?

(заполнение несвязанных данных, заполнение текстовых полей и т. Д. Просто отлично)

Благодарен за любую помощь!

Jason

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

Используйте это:

echo $this->Form->input('Location', array( 
            'label' => 'Location',
            'type' => 'select', 
            'options' => $LocationArray,
            'selected'=> 12(Selected Value)
            );
0 голосов
/ 09 декабря 2010

вместо

$this->data = $this->Content->read()

попробовать

$params['conditions'] = array(
    'Content.id' => $id
);
$params['contain'] = array(
    'Category',
    'Location'
);
$this->data = $this->Content->find('first', $params);

Для этого вам потребуется Контейнерное поведение

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