2012-03-01 55 views
0

现在,这并非一直发生,我的复制错误的努力已被击中和错过。CakePHP - 在编辑记录时,有时会得到重复的

基本上,我们有一个工作制度,有一个用户,一个标题,正文和截止日期。有时,从作业的编辑表格中保存会产生重复的,即相同的作业(具有所有相同的内容),但具有新的编号。

我想知道是否有人遇到类似的错误。

这是我的工作控制器的编辑功能:

function edit($id = null) { 
     if (!$id && empty($this->data)) { 
      $this->Session->setFlash(__('Invalid job', true)); 
     } 
     if (!empty($this->data)) { 
      if ($this->Job->save($this->data)) { 
       $this->Session->setFlash(__('The job has been saved', true)); 
      } else { 
       $this->Session->setFlash(__('The job could not be saved. Please, try again.', true)); 
      } 
     } 
     if (empty($this->data)) { 
      $this->data = $this->Job->read(null, $id); 
     } 
     $users = $this->Job->User->find('list', array('fields' => array('User.username'))); 
     $clients = $this->Job->Client->find('list'); 
     $stages = $this->Job->Stage->find('list'); 
     $this->set(compact('users', 'clients', 'stages')); 
    } 

任何帮助表示赞赏。

+0

当你说重复,你的意思是,右侧和新的条目都保存或正确的条目不更新,并创建一个副本? – 2012-03-01 12:12:43

+0

记录的ID是否总是出现在$ this-> data中? – mark 2012-03-01 12:14:54

+0

@ G.J,这是正确的。下面的答案击中了头部! – 2012-03-01 14:48:12

回答

2

可能在您的表格中,您没有此工作的编号。确保你有这个视图形式:

echo $this->Form->input('id'); 
+0

谢谢,这是完全正确的。为了不编辑它,我带着ID出去了。现在我只是将它包装在一个隐藏的div中,这很容易。 – 2012-03-01 14:34:56

+0

默认情况下,您使用'type =“hidden”'形式创建的任何ID输入。它没有发生? – 2012-03-01 14:44:18

+0

我必须诚实地说,在我测试之前,我对表格进行了修改,所以很有可能,在我删除它之前我错过了。谢谢你的帮助! – 2012-03-01 14:47:18