小编spa*_*mat的帖子

如何将模型转换器应用于Symfony2表单中的集合项?

背景是

我有一个类型的Symfony2表单字段collection,其中集合项是entity类型.我使用Symfony 2.7.

问题是

到目前为止它仍然有效,但在这种情况下,我必须将模型数据转换器应用于Symfony Cookbook中描述的那些集合项.我使用这段代码:

<?php
$builder
    ->add(
        $builder
            ->create('items', 'collection', array(
                'type' => 'entity',
                'options' => array(
                    'class' => 'AppBundle:Item',
                    'property' => 'name',
                    'label' => 'Item',
                ),
                'label' => 'Items',
                'allow_add' => true,
                'allow_delete' => true,
                'delete_empty' => true,
                'prototype' => true,
                'required' => false,
            ))
            // $options['em'] is the entity manager
            ->addModelTransformer(new ItemToNumberTransformer($options['em']))
    )
;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会将模型转换器应用于整个集合,而不是它的一个Item项.作为一种解决方法,我修改了变换器以使用项目/ ID的数组而不是仅使用单个项目/ id,但是这种类似于处理它的错误位置.在我看来好像这更像是一个语法问题.

问题是

有人知道如何将模型变换器应用于集合的每个项目吗?或者任何人都证实,由于Symfony框架中的限制,这根本不可能实现?

php symfony

7
推荐指数
1
解决办法
3788
查看次数

Symfony2双嵌套动态表单字段

我有一个Symfony2表单,有两个分层的动态字段.第一层在使用表单事件实现记录的方式时没有问题:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html#dynamic-generation-for-submitted-forms

但接下来是第三个字段,它取决于第二个字段,它已经是一个动态字段.

为了演示这个问题,这里是我的剥离代码:

<?php
class ServiceeventType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('park', 'entity', array(
                'class' => 'AppBundle:Park',
                'property' => 'identifyingName',
                'label' => 'Park',
                'required' => true,
                'invalid_message' => 'Choose a Park',
                'placeholder' => 'Please choose',
            ))
            // just a placeholder for the $builder->get('facility')->addEventListener to have something to bind to
            // I'm aware, that this is just a symptom of my problem …
Run Code Online (Sandbox Code Playgroud)

php forms symfony

5
推荐指数
1
解决办法
3231
查看次数

标签 统计

php ×2

symfony ×2

forms ×1