CakePHP 3 - 记录无法保存在我的登录功能中

时间:2016-04-12 07:37:07

标签: cakephp save

记录无法保存在我的登录功能中。我不知道为什么。 有谁知道问题是什么? 控制器中的其他功能(添加,编辑,删除)可以正常工作。

...
class UsersController extends AppController
{
...
    /**
     * Login method
     */     
  public function login()
    {

    if ($this->request->is('post')) {
        $user = $this->Auth->identify();
        if ($user) {
            $this->Auth->setUser($user);
            $user = $this->Users->newEntity($user,['validate' => false]);
            $user->isNew(false);

            //Last login date
            $user->test = 'abcdef';
            $user->modified = new Time();
            $this->Users->save($user);
            return $this->redirect($this->Auth->redirectUrl());
        }
        $this->Flash->error(__('Error'));
    }
   }
...
}

2 个答案:

答案 0 :(得分:1)

为什么使用newEntity? 尝试删除它并做一些事情:

$this->Auth->setUser($user);
            $user->isNew(false);
            $user->validate=false;
            //Last login date
            $user->test = 'abcdef';
            $user->modified = new Time();
            $this->Users->save($user);

如果它不起作用,请尝试显示实体错误以了解原因:

之前:$this->Users->save($user);

那样做:

debug($user->errors()); die();

答案 1 :(得分:1)

它的工作原理如下:

public function login()
        {

        if ($this->request->is('post')) {
            $authUser = $this->Auth->identify();
            if ($authUser) {
                $this->Auth->setUser($authUser);            
                $User = $this->Users->get($authUser['id']);
                //Last login date
                $User->modified = new Time();
                $this->Users->save($User);
                return $this->redirect($this->Auth->redirectUrl());
            }
            $this->Flash->error(__('Error'));
        }
       }