CakePHP3でログイン時間を残す
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[CakePHP3めも]]
*ビヘイビアを使用 [#hbb4e669]
ビヘイビアを使用するとスマートに実装できそうです。
adminsテーブルにlastloginフィールドをdatetime型で用意して...
**ビヘイビアにイベントを定義 [#n90fa244]
AdminsTable.php
public function initialize(array $config)
{
$this->addBehavior('Timestamp', [
'events' => [
'Admins.login' => [
'lastlogin' => 'always'
]
]
]);
}
**コントローラーからイベントを呼び出し [#wf14c6cf]
AdminController.php
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
// 最終ログイン日時を保存
$this->loadModel('Admins');
$entity = $this->Admins->get($user['id']);
$entity->setDirty('modified', true);
$this->Admins->touch($entity, 'Admins.lo...
$this->Admins->save($entity);
return $this->redirect($this->Auth->redi...
}
$this->Flash->error(__('ログインIDまたはパス...
}
}
*ビヘイビアを使用しない [#p092ab81]
上記のやり方だとUPDATE処理でmodifiedフィールドが更新され...
なので、コントローラーのみで処理します。
AdminController.php
use Cake\I18n\Time;
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
// 最終ログイン日時を保存
$this->loadModel('Admins');
$entity = $this->Admins->get($user['id']);
$entity = $this->Admins->patchEntity($en...
$entity->setDirty('modified', true);
$this->Admins->save($entity);
return $this->redirect($this->Auth->redi...
}
$this->Flash->error(__('ログインIDまたはパス...
}
}
終了行:
[[CakePHP3めも]]
*ビヘイビアを使用 [#hbb4e669]
ビヘイビアを使用するとスマートに実装できそうです。
adminsテーブルにlastloginフィールドをdatetime型で用意して...
**ビヘイビアにイベントを定義 [#n90fa244]
AdminsTable.php
public function initialize(array $config)
{
$this->addBehavior('Timestamp', [
'events' => [
'Admins.login' => [
'lastlogin' => 'always'
]
]
]);
}
**コントローラーからイベントを呼び出し [#wf14c6cf]
AdminController.php
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
// 最終ログイン日時を保存
$this->loadModel('Admins');
$entity = $this->Admins->get($user['id']);
$entity->setDirty('modified', true);
$this->Admins->touch($entity, 'Admins.lo...
$this->Admins->save($entity);
return $this->redirect($this->Auth->redi...
}
$this->Flash->error(__('ログインIDまたはパス...
}
}
*ビヘイビアを使用しない [#p092ab81]
上記のやり方だとUPDATE処理でmodifiedフィールドが更新され...
なので、コントローラーのみで処理します。
AdminController.php
use Cake\I18n\Time;
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
// 最終ログイン日時を保存
$this->loadModel('Admins');
$entity = $this->Admins->get($user['id']);
$entity = $this->Admins->patchEntity($en...
$entity->setDirty('modified', true);
$this->Admins->save($entity);
return $this->redirect($this->Auth->redi...
}
$this->Flash->error(__('ログインIDまたはパス...
}
}
ページ名: