CakePHP在登录时保存日期/时间

时间:2012-12-12 11:27:56

标签: php cakephp datetime controller save

我在我的控制器中有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'));
        }
    }

2 个答案:

答案 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;