Добавить поле из Entity для 2 языков в форме

У меня есть страница сущности с полями:

pagelocaleid (PK), описание, содержание, локаль, перевод и pageid (FK).

Моя сущность:

<?php

namespace DX\MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\UploadedFile;

/**
* Pagelocale
*
* @ORM\Table(name="pageLocale", indexes={@ORM\Index(name="fk_pageLocale_page1_idx", columns={"pageID"})})
* @ORM\Entity(repositoryClass="DX\MyBundle\Repository\PagelocaleRepository")
* @ORM\HasLifecycleCallbacks
*/
class Pagelocale
{
/**
* @var string
*
* @ORM\Column(name="description", type="text", length=65535, nullable=true)
*/
private $description;

/**
* @var string
*/
private $descriptionEN;

/**
* @var string
*
* @ORM\Column(name="content", type="text", length=65535, nullable=true)
*/
private $content;

/**
* @var string
*/
private $contentEN;

/**
* @var string
*
* @ORM\Column(name="locale", type="string", length=5, nullable=true)
*/
private $locale;

/**
* @var boolean
*
* @ORM\Column(name="translated", type="boolean", nullable=true)
*/
private $translated;

/**
* @var integer
*
* @ORM\Column(name="pageLocaleID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $pagelocaleid;

/**
* @var \DX\MyBundle\Entity\Page
*
* @ORM\ManyToOne(targetEntity="DX\MyBundle\Entity\Page")
* @ORM\JoinColumns({
*   @ORM\JoinColumn(name="pageID", referencedColumnName="pageID")
* })
*/
private $pageid;

/**
* @var string
*/
private $tag;

/**
* Set tag
*
* @param string $tag
* @return Articlelocale
*/
public function setTag($tag)
{
if($this->pageid)
{
$this->pageid->setTag($tag);
}
else
{
$this->tag = $tag;
}

return $this;
}

/**
* Get tag
*
* @return string
*/
public function getTag()
{
if($this->pageid)
{
return $this->pageid->getTag();
}
else
{
return $this->tag;
}
}

/**
* Set description
*
* @param string $description
* @return Pagelocale
*/
public function setDescription($description)
{
$this->description = $description;

return $this;
}

/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}

/**
* Set descriptionEN
*
* @param string $descriptionEN
* @return Pagelocale
*/
public function setDescriptionEN($descriptionEN)
{
$this->descriptionEN = $descriptionEN;

return $this;
}

/**
* Get descriptionEN
*
* @return string
*/
public function getDescriptionEN()
{
return $this->descriptionEN;
}

/**
* Set content
*
* @param string $content
* @return Pagelocale
*/
public function setContent($content)
{
$this->content = $content;

return $this;
}

/**
* Get content
*
* @return string
*/
public function getContent()
{
return $this->content;
}/**
* Set contentEN
*
* @param string $contentEN
* @return Pagelocale
*/
public function setContentEN($contentEN)
{
$this->contentEN = $contentEN;

return $this;
}

/**
* Get contentEN
*
* @return string
*/
public function getContentEN()
{
return $this->contentEN;
}

/**
* Set locale
*
* @param string $locale
* @return Pagelocale
*/
public function setLocale($locale)
{
$this->locale = $locale;

return $this;
}

/**
* Get locale
*
* @return string
*/
public function getLocale()
{
return $this->locale;
}

/**
* Set translated
*
* @param boolean $translated
* @return Pagelocale
*/
public function setTranslated($translated)
{
$this->translated = $translated;

return $this;
}

/**
* Get translated
*
* @return boolean
*/
public function getTranslated()
{
return $this->translated;
}

/**
* Get pagelocaleid
*
* @return integer
*/
public function getPagelocaleid()
{
return $this->pagelocaleid;
}

/**
* Set pageid
*
* @param \DX\MyBundle\Entity\Page $pageid
* @return Pagelocale
*/
public function setPageid(\DX\MyBundle\Entity\Page $pageid = null)
{
$this->pageid = $pageid;

return $this;
}
}

Я использую Sonata Admin Bundle, но в данном случае это не имеет значения.

Как вы можете видеть в моей сущности, я добавил вручную contentEN а также descriptionEN потому что я хочу содержание & описание на 2 языках.

И я хочу иметь возможность сделать это в одной форме, а не в 2 шага (создать для каждого языка контента).

Теперь у меня есть в моей форме:

$formMapper
->add('tag', 'text', array('label' => 'Tag'))
->add('description', 'text', array('label' => 'Beschrijving'))
->add('descriptionEN', 'text', array('label' => 'Beschrijving Engels'))
->add('content', 'textarea', array('label' => 'Tekst', 'attr' => array('class' => 'ckeditor'), 'help' =>
'My help text.'))
->add('contentEN', 'textarea', array('label' => 'Tekst Engels', 'attr' => array('class' => 'ckeditor'), 'help' =>
'My help text.'))
;

Я могу создать 2 разных объекта и установить локаль, это не проблема. Но когда я хочу редактировать их contentEN & descriptionEN логически не заполнены. Как я могу убедиться, что я получаю описание и содержание где локаль = .. ?

ОБНОВИТЬ:
Моя структура БД:

введите описание изображения здесь

Так что у меня нет страницы таблицы, локаль & pagelocale.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]