可翻译学说实体的Symfony形式 [英] Symfony forms for Translatable Doctrine entities

查看:102
本文介绍了可翻译学说实体的Symfony形式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Doctrine实体,该实体已使用可翻译的Doctrine扩展名进行了翻译:

I have a Doctrine entity that has been translated using the Translatable Doctrine extension:

<?php
namespace Myapp\ProductBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Translatable\Translatable;

/**
 * @ORM\Table(name="product_property")
 * @ORM\Entity()
 * @Gedmo\TranslationEntity()
 */
class Property implements Translatable
{
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;

    /**
     * @ORM\OneToMany(
     *   targetEntity="PropertyTranslation",
     *   mappedBy="object",
     *   cascade={"persist", "remove"}
     * )
     */
    private $translations;

    /**
     * @Gedmo\Locale
     * Used locale to override Translation listener`s locale
     * this is not a mapped field of entity metadata, just a simple property
     */
    private $locale;


    public function setTranslatableLocale($locale)
    {
        $this->locale = $locale;
    }

    public function getTranslations()
    {
        return $this->translations;
    }

    public function addTranslation(PropertyTranslation $t)
    {
        if (!$this->translations->contains($t)) {
            $this->translations[] = $t;
            $t->setObject($this);
        }
    }
}

现在,我想用翻译中可用的每种语言为"name"属性的输入字段呈现一个表单.

Now, I'd like to render a form with an input field for the "name" property in each of the languages available in my translation.

那最好的做法是什么?

推荐答案

以下捆绑包似乎能够完全满足我的需求:

It seems that the following bundle is able to do exactly what I was looking for: https://github.com/a2lix/TranslationFormBundle

这篇关于可翻译学说实体的Symfony形式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆