У меня есть несколько моделей с метками времени и полями active
и несколько частей в моем коде, где я их обновляю.
Я хочу иметь возможность обновлять модель и трогать временные метки только тогда, когда обновленная модель меняет больше, чем действующее поле.
Итак, мой код
const leaveUntouched=["active"=>true]
...
$instance = $model::find($data["id"]);
$changed = array_diff_assoc($data,$instance->toArray());
$needTimestampTouch = array_diff_key($changed,self::leaveUntouched);
if (empty($needTimestampTouch))
$instance->timestamps = false;
$instance->fill($data);
$instance->save();
Было бы намного чище, если бы я мог определить это в самой BaseModel.
Должен ли я расширить метод заполнения Eloquent / Model в моем базовом классе? И как бы я это сделал?