RgbaColor::class ]; /** * Perform any actions required after the model boots. * * @return void */ protected static function booted() { static::creating(function () { throw new \RuntimeException('Impossible de créer un range'); }); static::updating(function (self $model) { static::assertLabelIsUnique($model->label, $model->id); $model->slug = Str::slug($model->label); $model->picture = FileStorageHelper::storeFile($model, $model->picture, true); $model->picture_banner = FileStorageHelper::storeFile($model, $model->picture_banner, true); }); static::updated(function (self $model) { $model->picture = FileStorageHelper::removeOldFile($model, 'picture'); $model->picture_banner = FileStorageHelper::removeOldFile($model, 'picture_banner'); }); static::deleting(function () { throw new \RuntimeException('Impossible de supprimer un range'); }); } // * METHODS /** * Asserts using validation that the label is unique * * @param mixed $label * @param integer|null $id * @return void * @throws \Illuminate\Validation\ValidationException If an actu label already exists. */ private static function assertLabelIsUnique($label, ?int $id = null) { $table = (new self())->getTable(); ToolboxHelper::assertFieldIsUnique($table, 'label', $label, $id); ToolboxHelper::assertFieldIsUnique($table, 'slug', Str::slug($label), $id); } // * RELATIONSHIPS /** * Get subranges for the Range. * * @return \Illuminate\Database\Eloquent\Relations\hasMany */ public function subranges() { return $this->hasMany(Subrange::class); } }