2013-02-26 24 views
1

嘿家伙请帮我在这我想更新两个表的数据通过一个单一的表格,但数据更新只在一个表中,并插入第二个表中,而不是更新现有的记录。这里是我的代码 -通过一个表单更新多个模型

查看文件:

echo $this->Form->create('Question'); 
echo $this->Form->input('question'); 
foreach (range(0,2) as $index) 
{ 
    echo $this->Form->input('Option.'.$index.'.poll_options'); 
} 
echo $this->Form->input('id',array('type'=>'hidden')); 
echo $this->Form->end('Save Poll'); 

Controller文件:

$data=$this->Question->findById($id); 
if($this->request->is('post') || $this->request->is('put')) 
{ 
    if($this->Question->saveAll($this->request->data)) 
    { 
     $this->Session->setFlash('Question has been updated'); 
     $this->redirect(array('action'=>'index')); 
    } 
    else 
    { 
     $this->Session->setFlash('Question has not been updated'); 
    } 
} 
if(!$this->request->data) 
{ 
    $this->request->data=$data; 
} 
+0

http://stackoverflow.com/questions/14831307/how-to-insert-multiple-records/14831717#14831717 – 2013-02-26 12:08:38

+0

这是代码插入数据库..我想更新字段,而不是添加... – Vicky 2013-02-26 12:11:06

+0

它不是在cakephp中的主要区别只是读取数据和通过身份证在隐藏然后cakephp会为你做更新...我看不到隐藏的ID创建你的 – 2013-02-26 12:12:29

回答

0

控制器代码解释。

<?php 
    $data = $this->Question->findById($id); 

以上将返回所有的问题,并如下文相关联的答案阵列。

Array 
(
    [Question] => Array 
    (
     [id] => 121 
     [name] => Gwoo the Kungwoo 
     [created] => 2007-05-01 10:31:01 
    ) 
    [Option] => Array 
    (
     [0] => Array 
      (
       [id] => 123 
       [quesion_id] => 121 
       [body] => The Kungwooness is not so Gwooish 
       [created] => 2006-05-01 10:31:01 
      ) 
     [1] => Array 
      (
       [id] => 124 
       [quesion_id] => 121 
       [title] => More on Gwoo 
       [created] => 2006-05-01 10:41:01 
      ) 
    ) 
) 

现在,我们需要做的是建立我们的表(让我们把很简单的东西):

echo $form->create('Question', array('action' => 'edit')); 
foreach($this->data['Option'] as $key => $value) 
{ 
    echo $form->input('Option.'.$key.'.name'); 
    echo $form->input('Option.'.$key.'.id'); 
} 
echo $form->end('Save All'); 

它是由我们$this->data阵列建成并遵循完全正确的格式,这允许saveAll()方法正常工作。

现在发布,看看我相信它现在可以工作。

干杯。

+0

它没有工作...仍然是同样的事情正在发生... :( – Vicky 2013-02-26 12:52:15

+0

@ user1990503它会给你错误...必须工作,因为它的唯一途径...让我知道你的模型代码和之间的关联他们 – 2013-02-26 12:53:28

+0

没有错... 有问题的模型文件...我申请了很多关系和在我申请的选项模型属于关系... – Vicky 2013-02-26 12:54:48