2015-11-11 55 views
0

保存之前存在的數據我是很新的cake3我不知道怎麼能做到這 我有兩個檢查CakePHP中

users and accounts

用戶包含

Id,EmployeeId,Password,Logs 

賬戶包含

Id,EmployeeId,Password,Fname,Lname,Role 

我希望發生的爲b在數據保存在用戶表中之前,它將首先檢查賬戶表中是否存在員工標識和密碼,如何在cakephp 3中執行此操作?

我有這個在我的控制器

$user = $this->Users->newEntity(); 
     if ($this->request->is('post')) { 
      $user = $this->Users->patchEntity($user, $this->request->data); 
      if ($this->Users->save($user)) { 
       $this->Flash->success(__('Log Time Saved!.')); 
       return $this->redirect(['action' => 'index']); 
      } else { 
       $this->Flash->error(__('The user could not be saved. Please, try again.')); 
      } 
     } 
     $this->set(compact('user')); 
     $this->set('_serialize', ['user']); 
+0

我沒有使用蛋糕'3.0'只有'2.x'。也許這可以幫助http://book.cakephp.org/3.0/en/core-libraries/validation.html – roullie

+0

任何想法如何在cakephp中完成2.X – 123

+0

您使用的是CakePHP的哪個版本?在你提出的關於CakePHP 3的問題中,但是在你的評論中上面提到的CakePHP 2?如果不正確,請澄清並更新您的問題。 – drmonkeyninja

回答

1

在CakePHP 3中的一項:

您應該使用在實體對象作爲參數傳遞BeforeSave回調,你可以用它來檢查相同的記錄存在並避免再次存儲它。

From the documentation

保存每個實體之前Model.beforeSave事件。 停止此事件將中止保存操作。當事件是 停止事件的結果將被返回。

+1

任何代碼示例如何我可以利用beforesave? – 123