Я много гуглил, но, похоже, ничто не похоже на то, что я ищу ..
Я пытаюсь связать одну запись "Пользователь" с другими несколькими записями "Карты" водин раз с использованием нескольких списков HTML.
Таблицы: карточки пользователей (идентификатор, имя, имя пользователя) (идентификатор, идентификатор пользователя)
Модели:
class User extends AppModel {
public $name = 'User';
public $hasMany = array('Card');}
class Card extends AppModel {
public $name = 'Card';
public $belongsTo = array('User');}
Редактирование пользователя.ctp view
echo $this->Form->input('id');
echo $this->Form->input('Card', array('multiple'=>true));
Как будет выглядеть мой контроллер?в настоящее время это выглядит так, но ничего не сохраняет, кроме записи пользователя "без связанных карт"
if (!empty($this->data)) {
foreach($this->data['User']['Card'] as $key => $item){
$this->data['User']['Card'][$key] = array('id'=>$item, 'user_id'=>$this->data['User']['id']);
}
if ($this->User->saveAll($this->data)) {
//$this->User->Card->saveAll($this->data);
$this->Session->setFlash(__('The user has been saved', true));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.', true));
}
}
if (empty($this->data)) {
$this->data = $this->User->read(null, $id);
$this->set('cards', $this->User->Card->find('list'));
}
$ this-> data содержит:
Array
(
[User] => Array
(
[id] => 1
[name] => Superman
[status] => 1
[Card] => Array
(
[0] => Array
(
[id] => 11402130001
[user_id] => 1
)
[1] => Array
(
[id] => 11402130002
[user_id] => 1
)
[2] => Array
(
[id] => 11402130003
[user_id] => 1
)
[3] => Array
(
[id] => 11402130004
[user_id] => 1
)
)
)
)