#laravel #authentication #model #laravel-8 #laravel-authentication
Вопрос:
У меня есть следующий код внутри моей пользовательской модели.
public static function boot()
{
parent::boot();
static::creating(function ($model) {
if ($user = Auth::user()) {
$model->created_by = $user->id;
$model->modified_by = $user->id;
}
});
static::updating(function ($model) {
if ($user = Auth::user()) {
$model->modified_by = $user->id;
}
});
}
При входе в систему, когда в таблице пользователей обновляется значение remember_token, также обновляется значение updated_by.
есть ли какой-либо способ прекратить обновление в особых случаях, таких как вход в систему ??
Ответ №1:
В событии обновления вы можете проверить, совпадает ли текущее значение remember_token со старым (с getOriginal
помощью метода). И только после этого обновите также modified_by.
static::updating(function ($model) {
if ($user = Auth::user()) {
if ($model->remember_token == $model->getOriginal('remember_token')) {
$model->modified_by = $user->id;
}
}
});