编辑多个模型蛋糕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()函数一次(在所有相关模型中)保存整个事物。