编辑多个模型蛋糕PHP
问题描述:
试图编辑多个模型编辑多个模型蛋糕PHP
的控制器
function edit($id = null) {
if (!empty($this->data)) {
$this->Qnote->save($this->data);
if ($this->Qnote->save($this->data)) {
$this->data['Step']['qnote_id'] = $this->Qnote->id;
$this->Step->save($this->data);
$this->Session->setFlash(__('The qnote has been saved', true));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The qnote could not be saved. Please, try again.', true));
}
}
<?php echo $this->Form->create();?>
<fieldset>
<legend><?php __('Edit Qnote'); ?></legend>
<?php
echo $this->Form->hidden('Qnote.id');
echo $this->Form->input('Qnote.subject');
echo $this->Form->input('Qnote.body');
echo $this->Form->hidden('Step.0.id');
echo $this->Form->Hidden('Step.qnote_id');
echo $this->Form->Hidden('Step.user_id');
echo $this->Form->input('Step.0.body');
?>
<?php echo $this->Form->end(__('Submit', true));?>
我想编辑和更新相关车型信息的形式,QNOTES和步骤 信息显示在表单中。但是当我提交表格。
Qnote信息保存没有任何问题。但是步骤信息未更新
模型已关联。与步骤属于Qnote,QNote有很多步骤
答
您的表单包括'0'的所有步骤输入。
echo $this->Form->hidden('Qnote.id');
echo $this->Form->input('Qnote.subject');
echo $this->Form->input('Qnote.body');
echo $this->Form->hidden('Step.0.id');
echo $this->Form->Hidden('Step.0.qnote_id');
echo $this->Form->Hidden('Step.0.user_id');
echo $this->Form->input('Step.0.body');
而在您的控制器操作中,您需要调用saveAll()。
if ($this->Qnote->saveAll($this->data)) {
...
答
如果要将数据保存在多模型中,则必须调用控制器中的模型。使用
$this->loadModel('Step');
然后做下面的保存部分。您已经为对象调用了两次保存功能。
function edit($id = null) {
if (!empty($this->data)) {
$save = $this->Qnote->save($this->data);
if ($save) {
$this->data['Step']['qnote_id'] = $this->Qnote->id;
$this->Step->save($this->data);
$this->Session->setFlash(__('The qnote has been saved', true));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The qnote could not be saved. Please, try again.', true));
}
}
答
试试这个来加载不同的模型。 :) var $ uses = array('Qnote','Step','modelName');
答
如果这些模型是关联的,则可以通过使用saveAll()函数一次(在所有相关模型中)保存整个事物。