CakePHP 2.2.3 版
我想使用 2 个关联模型在同一页面上保存 2 个表单。模型 1 : 提案 hasOne Client 模型 2 : Client belongsTo Proposal
现在这是我在 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 书中的示例。
这是我的观点 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 个表单的所有数据。这很奇怪。
我做错了什么?
非常感谢您的帮助!
[编辑]:我已经更新了这篇文章并更正了代码。