我在我的控制器中有bellow登录功能,我正在尝试将登录日期/时间保存到字段last_login下的用户数据库表中,该字段是DATETIME字段,登录工作正常,但该字段永远不会被填充..任何想法什么可以阻止这个或如何解决应该输出什么?
public function login() {
$this->layout = 'login';
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->User->id = $this->Auth->user('id'); // target correct record
$this->User->saveField('last_login', date(DATE_ATOM)); // save login time
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Invalid username or password, try again', 'default', array('class' => 'warning'));
}
}
答案 0 :(得分:7)
如果db中的last_login字段设置为DATETIME
,则需要执行以下操作:
$this->User->saveField('last_login', date("Y-m-d H:i:s"));
由于DATE_ATOM
返回类似2012-08-15T15:52:01+00:00
的内容,因此它不会被插入
尝试禁用AuthComponent :: autoRedirect,例如
public $components = array(
'Auth' => array(
......
'autoRedirect' => false //set to false to disable auto redirect
),
);
答案 1 :(得分:1)
Use this to print query:
$log = $this->User->getDataSource()->getLog(false, false);
debug($log);
exit;