QuestionType::class ]; /** * The attributes that are mass assignable. * * @var string[] */ protected $fillable = [ 'question', 'type' ]; /** * Question * * @param array $attributes */ public function __construct(array $attributes = []) { self::$editableProperties = [ 'question' => [ 'label' => Str::ucfirst(trans('models.common.question')), 'type' => CrudType::string(), 'validate' => [ 'min:10', 'max:255' ], 'actions' => [ CrudAction::viewAny(), CrudAction::view(), CrudAction::create(), CrudAction::update() ] ], 'type' => [ 'label' => Str::ucfirst(trans('models.common.type')), 'type' => CrudType::enum(), 'enum' => QuestionType::class, 'actions' => [ CrudAction::view(), CrudAction::create(), CrudAction::update(), ] ], 'brand_id' => [ 'label' => Str::ucfirst(trans('models.classes.brand')), 'type' => CrudType::belongsTo(), 'belongsTo' => Brand::class, 'actions' => [ CrudAction::viewAny(), CrudAction::view(), CrudAction::create(), CrudAction::update(), ] ], 'answers' => [ 'label' => Str::ucfirst(Str::plural(trans('models.classes.answers'))), 'type' => CrudType::hasMany(), 'hasMany' => Answer::class, 'hasManyLabel' => 'answer', 'readonly' => true, 'actions' => [ CrudAction::viewAny(), CrudAction::view(), CrudAction::create(), CrudAction::update(), ] ] ]; parent::__construct($attributes); } // * RELATIONS /** * Brand BelongsTo relation * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function brand() { return $this->belongsTo(Brand::class); } /** * Answer Has many relation * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function answers() { return $this->hasMany(Answer::class); } }