ユーザーを移行しているときに、$ userオブジェクトに遭遇しました。
ログインフィールドとアクセスフィールドの違いは何ですか?アクセスはすべてのページ要求で更新されますか?
ユーザーを移行しているときに、$ userオブジェクトに遭遇しました。
ログインフィールドとアクセスフィールドの違いは何ですか?アクセスはすべてのページ要求で更新されますか?
回答:
アクセスフィールドは、Drupalのセッションの書き込みハンドラで更新され_drupal_session_write。つまり、すべてのページ要求で更新される可能性があります。ソースコードを見ると、デフォルトでは、アクセスフィールドは180秒ごとにしか更新されないことがわかります。この間隔は、session_write_interval
Drupal変数を設定することで変更できます。
// Likewise, do not update access time more than once per 180 seconds.
if ($user->uid && REQUEST_TIME - $user->access > variable_get('session_write_interval', 180)) {
db_update('users')
->fields(array(
'access' => REQUEST_TIME,
))
->condition('uid', $user->uid)
->execute();
}
のフィールドのコメントによるとuser_schema()
:
access
:以前にユーザーがサイトにアクセスしたときのタイムスタンプ。
login
:ユーザーの最後のログインのタイムスタンプ。
したがって、ユーザーが実際にログインしたときのみ、access
ページが読み込まれるたびに更新login
されます。