onlyOnIndex(); yield TextField::new(propertyName: 'firstName'); yield TextField::new(propertyName: 'lastName'); yield EmailField::new(propertyName: 'email'); yield TextField::new('password') ->setFormType(RepeatedType::class) ->setFormTypeOptions([ 'type' => PasswordType::class, 'first_options' => ['label' => 'Password'], 'second_options' => ['label' => 'Password (Repeat)'], 'mapped' => false, ]) ->setRequired($pageName === Crud::PAGE_NEW) ->onlyOnForms(); yield ImageField::new(propertyName: 'avatar') ->setBasePath(path: 'uploads/avatars') ->setUploadDir(uploadDirPath: 'public/uploads/avatars') ->setUploadedFileNamePattern(patternOrCallable: '[slug]-[timestamp].[extension]'); yield ChoiceField::new(propertyName: 'roles') ->setChoices(choiceGenerator: array_combine(keys: $roles, values: $roles)) ->allowMultipleChoices() ->renderExpanded() ->renderAsBadges(); } }