symfony - Symfony VichUploaderBundle:找不到字段“xx”的映射
问题描述
我阅读了 VichUploaderBundle文档,并将从中学到的知识应用到我的代码中。
但是当我尝试运行代码时,我得到这个 Exception Mapping not found for field "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);
}
}
解决方案
你的问题是你写
/*
* @Vich\UploadableField(mapping="company_logo", fileNameProperty="logo")
*/
代替
/**
* @Vich\UploadableField(mapping="company_logo", fileNameProperty="logo")
*/
(检查第一行;))
PS:如果您使用 Easy admin,请注意您的表单描述,您需要针对“logoFile”属性而不是“logo”
推荐阅读
- reactjs - Invariant Violation: Avatar(...): 没有从渲染返回。这通常意味着缺少返回语句
- restsharp - 如何使用 restsharp 发布复杂的 Json 数据(正文)?
- c - 用c语言用俄语符号修改字符串
- javascript - 如何提高 React Native 应用程序的性能?
- angular - 使用 Angular 6 中的 TAB 在 Kendo 网格导航中跳过不可编辑的单元格
- ide - 如何在自身上复制行?
- json - laravel whereJson 包含在 laravel 审计中
- geometry - 检查任何两个对象之间的距离是否在指定网格内的算法
- php - Symfony 3.4.:抛出错误时未显示堆栈跟踪
- json.net - 解析仅包含对象值的文本