在保存cakephp之前检查数据是否存在

时间:2015-11-11 06:55:08

标签: php cakephp cakephp-3.0

我是蛋糕新手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']);

1 个答案:

答案 0 :(得分:1)

在CakePHP 3中:

您应该使用BeforeSave回调,其中Entity对象作为参数传递,您可以使用它来检查是否存在相同的记录,并避免再次存储它。

From the documentation

  

在保存每个实体之前触发Model.beforeSave事件。   停止此事件将中止保存操作。当事件发生时   停止了事件的结果将被退回。