记录无法保存在我的登录功能中。我不知道为什么。 有谁知道问题是什么? 控制器中的其他功能(添加,编辑,删除)可以正常工作。
...
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'));
}
}
...
}
答案 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'));
}
}