3

我的控制器中有波纹管登录功能,并试图将登录日期/时间保存到 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'));
        }
    }
4

2 回答 2

7

如果您在 db 中的 last_login 字段设置为DATETIMEthen,您需要执行以下操作:

$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
    ),
);
于 2012-12-12T11:32:11.367 回答
1
Use this to print query:

$log = $this->User->getDataSource()->getLog(false, false);
debug($log);
exit;
于 2012-12-13T04:15:46.613 回答