*/ protected $hidden = [ 'password', ]; protected $casts = [ self::COL_NAME_ROLE => UserRole::class, ]; protected $dispatchesEvents = [ 'created' => CreatedEvent::class, 'updating' => UpdatingEvent::class, 'deleted' => DeletedEvent::class, ]; public static function getBuilder(string $name = 'main'): Builder { return DB::table(static::getTableName(), $name); } public static function getTableName(): string { return (new static)->getTable(); } public function copy(IModelFeature $from): static { $data = $from->getAttributeKeys(); foreach ($data as $key) { $this->$key = $from->$key; } return $this; } public function getAttributeKeys(): array { return array_values(array_unique(array_merge(array_keys($this->attributesToArray()), $this->hidden))); } public function isNotSavedModel(): bool { return data_get($this, ColumnName::ID) === null; } public function getHistory(): ?HistoryModel { return new UserHistory(); } public function getModelName(): string { return "ユーザー情報"; } public function getChangeLogMessage($before, $after): ?string { return null; } }