问题描述
我无法从 EasyAdmin V3 上传图片,我还添加了 VichUpload。我必须写 setUploadDir() 否则我有这个错误信息:
与此同时,我正在评论第 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/')
必须删除空格,否则将无法工作。