2013-04-23 2 views
0

Я стараюсь следовать конвенциям в поваренной книге, но мне не повезло. Я испек все мои CRUD и ассоциации моделей и должен настроить администратор Add View (у администратора есть 1 пользователь). Когда я пытаюсь проверять, я получаю соответствующие сообщения об ошибках для модели администратора, но не для модели пользователя. Вот то, что я использую для моей формы ...CakePHP 2.3 - Сохранение похожих данных модели

/* User Data */ 
echo __('<h3>Setup Login Information</h3>'); 
echo $this->Form->input('User.0.username'); 
echo $this->Form->input('User.0.password', array('type'=>'password')); 
echo $this->Form->input('User.0.password_confirm', array('type'=>'password')); 
echo $this->Form->input('User.0.user_role_id'); 

/* Administrator Data */ 
echo __('<h3>User Information</h3>'); 
echo $this->Form->input('Administrator.first_name'); 
echo $this->Form->input('Administrator.last_name'); 
echo $this->Form->input('Administrator.title'); 
echo $this->Form->input('Administrator.email_address'); 
echo $this->Form->input('Administrator.phone_number'); 

и вот что у меня есть настройки в контроллере ...

if(!empty($this->request->data)) { 
    // Use the following to avoid validation errors: 
    unset($this->Administrator->User->validate['Administrator_id']); 
    $this->Administrator->saveAssociated($this->request->data); 
} 

$users = $this->Administrator->User->find('list'); 
$userRoles = $this->User->UserRole->find('list'); 
$this->set(compact(array('users', 'userRoles'))); 

ответ

2

Если администратор имеет 1 пользователь, вам не нужно указать индекс на форму ввода:

echo $this->Form->input('User.0.username'); 
echo $this->Form->input('User.0.password', array('type'=>'password')); 
echo $this->Form->input('User.0.password_confirm', array('type'=>'password')); 
echo $this->Form->input('User.0.user_role_id'); 

Если быть на самом деле:

echo $this->Form->input('User.username'); 
echo $this->Form->input('User.password', array('type'=>'password')); 
echo $this->Form->input('User.password_confirm', array('type'=>'password')); 
echo $this->Form->input('User.user_role_id'); 
+0

Да, вот и все! Я думал, что пробовал этот маршрут ... хороший улов! –