Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 用于多个翻译的可翻译实体和表单_Symfony_Doctrine Orm - Fatal编程技术网

Symfony 用于多个翻译的可翻译实体和表单

Symfony 用于多个翻译的可翻译实体和表单,symfony,doctrine-orm,Symfony,Doctrine Orm,考虑类别实体及其CategoryTranslation实体: 我想创建一个表单,以便轻松添加翻译 我有一个函数解决方案,它很有用,因为部分泛型与TranslationType有关。 但它仅限于更新。。(->抽象类使用) 你看到解决办法了吗 谢谢。你必须写一些技巧 这是我的解决方案的一部分(针对SonataAdminBundle), 但我还没能成功。它真的能给你带来动力 如果您发现了什么,请告诉我。答案: class CategoryType extends AbstractType {

考虑类别实体及其CategoryTranslation实体:

我想创建一个表单,以便轻松添加翻译

我有一个函数解决方案,它很有用,因为部分泛型与TranslationType有关。 但它仅限于更新。。(->抽象类使用)


你看到解决办法了吗


谢谢。

你必须写一些技巧

这是我的解决方案的一部分(针对SonataAdminBundle), 但我还没能成功。它真的能给你带来动力

如果您发现了什么,请告诉我。

答案:

class CategoryType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('description')
            ->add('translations', 'collection', array(
                'type' => new TranslationType(),
                'allow_add' => true,
                'by_reference' => false,
                'options' => array(
                    'data_class' => 'XXX\YYYBundle\Entity\CategoryTranslation'
                )
            ))
        ;
    }

    public function getDefaultOptions()
    {
        return array(
            'data_class' => 'XXX\YYYBundle\Entity\Category'
        );
    }

    public function getName()
    {
        return 'categ';
    }
}

我制作了一个专用的捆绑包以便于使用。

是的,谢谢,我在谷歌搜索中已经找到了你的要点。。。我会在其他网站上询问,然后花时间重新调查。如果您愿意,我们将在本周内找到解决方案。谢谢,gedmo向我发送一封包含您的解决方案的电子邮件。伟大的工作伙伴;-)不客气:)事实上这并不难。我的职位是基本的,可以很容易地提高。我已经添加了一个@Assert\Valid for translations对象作为快速修改。
class CategoryType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('description')
            ->add('translations', 'collection', array(
                'type' => new TranslationType()
            ))
        ;
    }

    public function getDefaultOptions()
    {
        return array(
            'data_class' => 'Category'
        );
    }

    public function getName()
    {
        return 'categ';
    }
}
class CategoryType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('description')
            ->add('translations', 'collection', array(
                'type' => new TranslationType(),
                'allow_add' => true,
                'by_reference' => false,
                'options' => array(
                    'data_class' => 'XXX\YYYBundle\Entity\CategoryTranslation'
                )
            ))
        ;
    }

    public function getDefaultOptions()
    {
        return array(
            'data_class' => 'XXX\YYYBundle\Entity\Category'
        );
    }

    public function getName()
    {
        return 'categ';
    }
}