用 vich_image onetone 保存表格
save form with vich_image onetone
/**
* @Gedmo\Tree(type="nested")
* @ORM\Table(name="mKeyword")
* @ORM\Entity(repositoryClass="KeywordRepository")
*/
class Keyword {
/**
* @ORM\OneToOne(targetEntity="Image",mappedBy="keyword" ,cascade={"all"})
* @var Image
*/
private $logo;
}
/**
* @Vich\Uploadable
* @ORM\Entity
* @ORM\Table(name="mKeywordLogo")
*/
class Image {
}
表格
class KeywordType extends AbstractType{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title','text')
->add('logo',new ImageType())
图像形式
class ImageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('file','vich_image',array(
'label'=>'logo'
));
}
保存表格时
得到
Expected value of type "KeywordsBundle\Entity\Image" for association field "Mea\KeywordsBundle\Entity\Keyword#$logo", got "array" instead.
我在关键字中添加数组解析器
public function setLogo($logo)
{
if(is_array($logo))
$logo = reset($logo);
$this->logo = $logo;
}
所以报错
关联字段 "KeywordsBundle\Entity\Keyword#$logo" 类型 "KeywordsBundle\Entity\Image" 的预期值,得到的是 "Symfony\Component\HttpFoundation\File\UploadedFile"。
我发现错误,当我添加这个时,Form ImageType 没有默认值。保存工作正常
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Mea\KeywordsBundle\Entity\Image'
));
}
/**
* @Gedmo\Tree(type="nested")
* @ORM\Table(name="mKeyword")
* @ORM\Entity(repositoryClass="KeywordRepository")
*/
class Keyword {
/**
* @ORM\OneToOne(targetEntity="Image",mappedBy="keyword" ,cascade={"all"})
* @var Image
*/
private $logo;
}
/**
* @Vich\Uploadable
* @ORM\Entity
* @ORM\Table(name="mKeywordLogo")
*/
class Image {
}
表格
class KeywordType extends AbstractType{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title','text')
->add('logo',new ImageType())
图像形式
class ImageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('file','vich_image',array(
'label'=>'logo'
));
}
保存表格时 得到
Expected value of type "KeywordsBundle\Entity\Image" for association field "Mea\KeywordsBundle\Entity\Keyword#$logo", got "array" instead.
我在关键字中添加数组解析器
public function setLogo($logo)
{
if(is_array($logo))
$logo = reset($logo);
$this->logo = $logo;
}
所以报错
关联字段 "KeywordsBundle\Entity\Keyword#$logo" 类型 "KeywordsBundle\Entity\Image" 的预期值,得到的是 "Symfony\Component\HttpFoundation\File\UploadedFile"。
我发现错误,当我添加这个时,Form ImageType 没有默认值。保存工作正常
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Mea\KeywordsBundle\Entity\Image'
));
}