HtmlColor::class, ]; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'color' ]; /** * Site * * @param array $attributes */ public function __construct(array $attributes = []) { self::$editableProperties = [ 'name' => [ 'name' => trans('Libellé'), 'type' => CrudType::string(), 'validate' => [ 'required', 'min:2', 'max:255', (new Unique('labels', 'name'))->ignore(request()->label) ], 'required' => true, 'nullable' => false, 'actions' => [ CrudAction::viewAny(), CrudAction::create(), CrudAction::update(), ] ], 'color' => [ 'label' => trans('Couleur'), 'type' => CrudType::color(), 'validate' => ['required', new Hex()], 'required' => true, 'nullable' => false, 'actions' => [ CrudAction::viewAny(), CrudAction::create(), CrudAction::update(), ] ] ]; parent::__construct($attributes); } /** * Perform any actions required after the model boots. * * @return void */ protected static function booted() { static::creating(function (self $model) { ToolboxHelper::assertIsUnique($model, ['name']); }); static::updating(function (self $model) { ToolboxHelper::assertIsUnique($model, ['name']); }); } // * RELATIONSHIPS /** * BelongsToMany Ticket relation * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function tickets() { return $this->belongsToMany(Ticket::class); } /** * BelongsTo Site relation * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function site() { return $this->belongsTo(Site::class); } }