Есть ли способ предотвратить «грязную» модель eloquent, используя функцию $model->isDirty()
при вызове $model->save()
из-за нескольких зашифрованных атрибутов.
Некоторые свойства модели имеют свои методы доступа, переопределенные для шифрования и дешифрования их значений. Поэтому, если мы обновляем модель с помощью формы на внешнем интерфейсе, но ни одна из незашифрованных данных не изменилась, это все равно приводит к загрязнению модели и обновлению отметки времени updated_at
.
Первоначальный "простой" способ, которым я могу придумать, - применять такую логику везде, где мы обновляем модели.
public function update(Request $request, User $user)
{
if ($user->name !== $request->input('name')) {
$user->name = $request->input('name');
}
...
$user->save();
}
Кто-нибудь может подумать о более быстром / более чистом способе сделать это?