我正在研究Symfony,我有一个关系:Product - OneToMany - Image。我想在我的添加产品的形式,添加4图像。
我知道如何使用JavaScript(通过添加动态输入模式…),但我想在我的表单中做,但我不知道如何…
下面是我的代码:
ProductType.php
class ProjectType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', TextType::class, array('label' => 'Titre'))
->add('url', UrlType::class, array('label' => 'URL'))
->add('client', TextType::class, array('label' => 'Client'))
->add('description', TextType::class, array('label' => 'Description'))
->add('category', EntityType::class, array(
'class' => 'AntoinePortfolioBundle:Category',
'choice_label' => 'name',
'multiple' => false,
'label' => 'Catégories'))
->add('tags', EntityType::class, array(
'class' => 'AntoinePortfolioBundle:Tag',
'choice_label' => 'name',
'multiple' => true,
'label' => 'Tags'))
->add('images', CollectionType::class, array(
'entry_type' => ImageType::class));
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Antoine'PortfolioBundle'Entity'Project'
));
}
}
ImageType.php
<?php
namespace Antoine'PortfolioBundle'Form;
use Symfony'Component'Form'Extension'Core'Type'TextType;
use Symfony'Component'Form'AbstractType;
use Symfony'Component'Form'Extension'Core'Type'FileType;
use Symfony'Component'Form'FormBuilderInterface;
use Symfony'Component'OptionsResolver'OptionsResolver;
class ImageType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, array('label' => 'Nom'))
->add('alt', TextType::class, array('label' => 'alt'))
->add('file', FileType::class, array('label' => 'Image'));
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Antoine'PortfolioBundle'Entity'Image'
));
}
}
我的人际关系很好,这不是问题。
感谢您的宝贵时间!您可以通过使用表单事件来实现这一点。http://symfony.com/doc/current/form/events.html
我认为FormEvents::PRE_SET_DATA
会成功。