TypeSondage::class ]; protected $fillable = [ 'type', 'question', 'status' ]; public function __construct($attributes = []) { self::$editableProperties = [ 'question' => [ 'label' => trans('Question'), 'type' => CrudType::string(), 'validate' => [ 'max:255' ], 'required' => true, 'nullable' => false, 'actions' => [ CrudAction::viewAny(), CrudAction::view(), CrudAction::create(), CrudAction::update() ] ], 'type' => [ 'label' => trans('Type'), 'type' => CrudType::enum(), 'enum' => TypeSondage::class, 'validate' => [ 'required', // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed function ($attribute, $value, $fail) { if (!in_array($value, TypeSondage::toValues())) { $fail(trans('Veuillez choisir entre :values', [ 'value' => implode(',', TypeSondage::toLabels()) ])); } } ], 'required' => true, 'nullable' => false, 'actions' => [ CrudAction::viewAny(), CrudAction::view(), CrudAction::create(), CrudAction::update() ] ], 'reponses' => [ 'label' => trans('Nombre de Réponses'), 'type' => CrudType::string(), 'actions' => [ CrudAction::viewAny() ], 'getAttribute' => function () { return $this->reponseSondages()->count(); }, ], 'status' => [ 'label' => trans('Publié'), 'type' => CrudType::boolean(), 'actions' => [ CrudAction::viewAny(), CrudAction::view(), CrudAction::create(), CrudAction::update() ] ] ]; parent::__construct($attributes); } /** * Has one Site * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function site() { return $this->belongsTo(Site::class); } /** * Has many ReponseSondage * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function reponseSondages() { return $this->hasMany(ReponseSondage::class); } }