微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EasyAdmin V3 上传图片

如何解决EasyAdmin V3 上传图片

我无法从 EasyAdmin V3 上传图片,我还添加了 VichUpload。我必须写 setUploadDir() 否则我有这个错误信息:

'The illustration image field must define the directory where the images are uploaded using the setUploadDir() method.

如果我把这个方法我有这个消息:

'An error has occurred resolving the options of the form...'

与此同时,我正在评论第 161 到 163 vendor\easycorp\easyadmin-bundle\src\Form\Type\FileUploadType.PHP 行,但我不想写供应商...您有在 EasyAdminV3 中上传图片的想法吗?我在等待回复删除了 vich 包。这是我的 CRUD 控制器:

<?PHP

namespace App\Controller\Admin;

use App\Entity\Planches;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;
use EasyCorp\Bundle\EasyAdminBundle\Field\BooleanField;
use EasyCorp\Bundle\EasyAdminBundle\Field\ImageField as ImageFields;
use EasyCorp\Bundle\EasyAdminBundle\Field\IntegerField;
use EasyCorp\Bundle\EasyAdminBundle\Field\MoneyField;
use EasyCorp\Bundle\EasyAdminBundle\Field\SlugField;
use EasyCorp\Bundle\EasyAdminBundle\Field\TextareaField;
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
use EasyCorp\Bundle\EasyAdminBundle\Field\ImageField;
class PlanchesCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return Planches::class;
    }


    public function configureFields(string $pageName): iterable
    {
        return [
            TextField::new('name'),SlugField::new('slug')->setTargetFieldName('name'),ImageFields::new('illustration')
                    ->setBasePath(' uploads/')
                    ->setUploadDir('public/uploads')
                ->setUploadedFileNamePattern('[randomhash].[extension]')
                ->setrequired(false),TextField::new('typedeplanche'),TextField::new('marque'),IntegerField::new('taille'),IntegerField::new('epaisseur'),MoneyField::new('prix')->setCurrency('EUR'),IntegerField::new('litrage'),TextField::new('etatusage'),TextField::new('typedederive'),TextareaField::new('description'),TextField::new('niveau'),TextField::new('vendeur'),BooleanField::new('vendueavecderives'),AssociationField::new('category')
        ];

        }
    
    }

解决方法

你的 Crud 控制器中有一个错字,尝试没有 vich bundle 它对我有用 ImageFields 应该是 ImageField

public function configureFields(string $pageName): iterable
{
    return [
        TextField::new('name'),SlugField::new('slug')->setTargetFieldName('name'),ImageField::new('illustration')
            ->setBasePath(' uploads/')
            ->setUploadDir('public/uploads')
            ->setFormType(FileUploadType::class)
            ->setUploadedFileNamePattern('[randomhash].[extension]')
            ->setRequired(false),TextField::new('typedeplanche'),TextField::new('marque'),IntegerField::new('taille'),IntegerField::new('epaisseur'),MoneyField::new('prix')->setCurrency('EUR'),IntegerField::new('litrage'),TextField::new('etatusage'),TextField::new('typedederive'),TextareaField::new('description'),TextField::new('niveau'),TextField::new('vendeur'),BooleanField::new('vendueavecderives'),AssociationField::new('category')
    ];

}
,

注意引用和上传之间的空格!

->setBasePath(' uploads/')

必须删除空格,否则将无法工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。