的CakePHP版本2.2.3保存(),它是由模型相關的2種形式使用saveAssociated
我要保存使用2個相關車型在同一頁上2種形式。 模式1:建議hasOne客戶 模型2:客戶屬於關聯議案
現在,這裏是我ProposalsController.php我admin_edit行動:
function admin_edit($id=null){
$this->loadModel('Client');
if ($this->request->is('put') || $this->request->is('Post')) {
if (!empty($this->request->data)) {
// Use the following to avoid validation errors:
unset($this->Proposal->Client->validate['proposal_id']);
//$this->Proposal->saveAssociated($this->request->data);
//$this->redirect(array('action' => 'index'));
debug($this->request->data);
}
}
elseif($id){
$this->Proposal->id = $id;
$this->request->data = $this->Proposal->read();
}
}
我用CakePHP的書中發現的例子。
這裏是我用2種形式視圖admin_edit.ctp:
<hr/>
<h1>Proposition</h1>
<hr/>
<?php echo $this->Form->create('Proposal'); ?>
<?php echo $this->Form->input('Proposal.name', array('label' => "Nom de la proposition")); ?>
<?php echo $this->Form->input('Proposal.created', array('label' => "Date de création")); ?>
<?php echo $this->Form->input('Proposal.due', array('label' => "Date d'échéance")); ?>
<?php echo $this->Form->input('Proposal.content', array('label' => "Termes & conditions")); ?>
<?php echo $this->Form->input('Proposal.id'); ?>
<hr/>
<h1>Client</h1>
<hr/>
<?php echo $this->Form->input('Client.name', array('label' => "Nom du client")); ?>
<?php echo $this->Form->input('Client.project', array('label' => "Nom du projet")); ?>
<?php echo $this->Form->input('Client.address', array('label' => "Adresse")); ?>
<?php echo $this->Form->input('Client.phone', array('label' => "Téléphone")); ?>
<?php echo $this->Form->input('Client.email', array('label' => "Email")); ?>
<?php echo $this->Form->hidden('Client.proposal_id'); ?>
<?php echo $this->Form->input('Client.id'); ?>
<?php echo $this->Form->end('valider'); ?>
同樣來自CakePHP的書的啓發。
數據已保存,但是對於第二種形式,它保存的所有數據都是我客戶端表中每列的「NULL
」值。但是如果我調試(請求 - >數據),我得到了我輸入的2個表單中的所有數據。這很奇怪。
這是什麼,我不正確地做?
非常感謝您的幫助!
[編輯]:我更新了這篇文章並更正了代碼。
非常感謝enrmarc,只是這樣!我必須誤讀這本書,但再次感謝我非常感謝! – 2013-02-17 12:09:17
我很高興我的幫助。 – 2013-02-17 12:36:58