如何删除 easyadmin symfony 中选择文件按钮旁边的删除按钮?

How can I remove the delete button next to the choose file button in easyadmin symfony?

如何删除 easyadmin symfony 中选择文件按钮旁边的删除按钮?

我想删除选择文件按钮旁边的删除按钮

Image Of the delete button

class ProjectCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return Project::class;
    }

    
    public function configureFields(string $pageName): iterable
    {

        $imageFile1= TextField::new('imageFile')->setFormType(VichImageType::class);
        $image1=ImageField::new('file')->setBasePath('/uploads/projects/');
        $imageFile2= TextField::new('imageFile2')->setFormType(VichImageType::class);
        $image2=ImageField::new('file2')->setBasePath('/uploads/projects/');
        $fields=[
            TextField::new('nom'),
            AssociationField::new('categorie'),
            TextareaField::new('description'),
            DateField::new('dateRealisation'),
            SlugField::new('slug')->setTargetFieldName('nom')->hideOnIndex(),
        ];
        if($pageName==Crud::PAGE_INDEX || $pageName == Crud::PAGE_DETAIL){
             $fields[]=$image1;
             $fields[]=$image2;
        }else{
             $fields[]=$imageFile1;
             $fields[]=$imageFile2;
        }
        return $fields;
    }


ImageField 正在使用 FileUploadType 作为表单类型。

如果你研究它,你会介意一些你感兴趣的选项:

//EasyCorp\Bundle\EasyAdminBundle\Form\Type\FileUploadType
        $view->vars['multiple'] = $options['multiple'];
        $view->vars['allow_add'] = $options['allow_add'];
        $view->vars['allow_delete'] = $options['allow_delete'];
        $view->vars['download_path'] = $options['download_path'];

对于您的 VichFileType,它是对您有帮助的相同选项名称。

您想禁用删除按钮,因此您可以使用名为 allow_delete 的选项。

使用easy admin,您可以使用setFormTypeOption($optionName, $optionValue)修改表单选项。

那就这样吧:

    $imageFile1= TextField::new('imageFile')
        ->setFormType(VichImageType::class)
        ->setFormTypeOption('allow_delete', false);
    $image1=ImageField::new('file')
        ->setBasePath('/uploads/projects/')
        ->setFormTypeOption('allow_delete', false);
    $imageFile2= TextField::new('imageFile2')
        ->setFormType(VichImageType::class)
        ->setFormTypeOption('allow_delete', false);
    $image2=ImageField::new('file2')
        ->setBasePath('/uploads/projects/')
        ->setFormTypeOption('allow_delete', false);