hasOneの一括保存

http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=796&forum=6
[php]
public function add() {
if ($this->request->is(‘post’)) {
$this->User->create();
if (!empty($this->data)) {
$user = $this->User->save($this->data);
//if ($this->User->save($this->request->data)) {

// User が保存されたら、User_detail データに User の情報を追加し
// 保存します。
if (!empty($user)) {
// 新しく生成した User の ID は、
// $this->User->id にセットされます。
$this->User->UserDetail->data[‘UserDetail’][‘user_id’] = $this->User->id;

// User は User_detail と hasOne のアソシエーションで関連付いているので
// User モデルを通して Profile モデルにアクセスできます:
$this->User->UserDetail->save($this->data);
}
$this->Session->setFlash(
__(‘保存しました’, __(‘user’)),
‘alert’,
array(
‘plugin’ => ‘TwitterBootstrap’,
‘class’ => ‘alert-success’
)
);

$this->redirect(array(‘action’ => ‘index’));
} else {
$this->Session->setFlash(
__(‘保存失敗’, __(‘user’)),
‘alert’,
array(
‘plugin’ => ‘TwitterBootstrap’,
‘class’ => ‘alert-error’
)
);
}
}
$lectures = $this->User->Lecture->find(‘list’);
$prefectures = $this->User->Prefecture->find(‘list’);
$userDetails = $this->User->UserDetail->find(‘list’);
$numbers = $this->User->Number->find(‘list’);
$this->set(compact(‘lectures’, ‘prefectures’, ‘userDetails’,’numbers’));
debug($userDetails);
}
[/php]
[php]
public $hasOne = array(
‘UserDetail’ => array(
‘className’ => ‘UserDetail’,
‘foreignKey’ => ‘user_id’,
‘conditions’ => ”,
‘fields’ => ”,
‘order’ => ”
)
);[/php]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です