我是蛋糕新手3我不知道怎么能设法做到这一点 我有两个
表users and accounts
用户包含
Id,EmployeeId,Password,Logs
帐户包含
Id,EmployeeId,Password,Fname,Lname,Role
我想要发生的是在将数据保存在用户表之前,它将首先检查帐户表中是否存在员工ID和密码如何在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 :(得分:1)
在CakePHP 3中:
您应该使用BeforeSave回调,其中Entity对象作为参数传递,您可以使用它来检查是否存在相同的记录,并避免再次存储它。
在保存每个实体之前触发Model.beforeSave事件。 停止此事件将中止保存操作。当事件发生时 停止了事件的结果将被退回。