我阅读了VichUploaderBundle 文档,并将从中学到的东西应用到代码中。
但是,当我试图运行代码时,我得到了"logoFile"字段找不到的异常logoFile映射。
注意:我使用的是Symfony 4.1和VichUploaderBundle 1.8
这是我的密码..。
配置
// config/packges/vich_uploader.yaml
vich_uploader:
db_driver: orm
mappings:
company_logo:
uri_prefix: /uploads/logos
upload_destination: '%kernel.project_dir%/public/uploads/logos'
inject_on_load: false
delete_on_update: true
delete_on_remove: true实体:
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @Vich\Uploadable
* @UniqueEntity("registrationNumber", message="This Registration Number {{ value }} is already used")
*/
class Company
{
// ...
/*
* @Vich\UploadableField(mapping="company_logo", fileNameProperty="logo")
*/
private $logoFile;
/**
* @ORM\Column(type="string", length=128, nullable=true, unique=true)
*/
private $logo;
public function getLogo(): ?string
{
return $this->logo;
}
public function setLogo(?string $logo): self
{
$this->logo = $logo;
return $this;
}
public function setLogoFile(?File $image = null): self
{
$this->logoFile = $image;
return $this;
}
public function getLogoFile(): ?File
{
return $this->logoFile;
}
// ...
}表单
class CompanyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// ...
->add('logoFile', VichImageType::class);
}
}发布于 2020-05-22 03:59:35
你的问题是你写
/*
* @Vich\UploadableField(mapping="company_logo", fileNameProperty="logo")
*/而不是
/**
* @Vich\UploadableField(mapping="company_logo", fileNameProperty="logo")
*/(检查第一行;)
PS:如果您使用轻松管理,请注意您的表单描述,您需要针对"logoFile“属性而不是”徽标“。
发布于 2018-08-08 12:16:59
这里的问题显然是关于表单,实体是好的,根据Vich文档(似乎)。请查看使用Symfony窗体的文档:https://symfony.com/doc/master/bundles/EasyAdminBundle/integration/vichuploaderbundle.html
https://stackoverflow.com/questions/51737760
复制相似问题