Много-ко-многим однонаправленная проблема с запросом

У меня возникли проблемы с запросом, который я хочу сделать во многих отношениях

У меня есть две сущности: сайт и язык

Сайт принадлежит владельцу, поэтому у меня есть:

class Site
{
/**
* @ORM\ManyToMany(targetEntity="Language", cascade={"persist"})
*/
protected $languages;

public function __construct()
{
$this->languages = new ArrayCollection();
}

public function getLanguages()
{
return $this->languages;
}

public function setLanguages($languages)
{
$this->languages = $languages;

return $this;
}
}

Языковая сущность:

class Language
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

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

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

... (getters and setters)

}

В шаблоне ветки я отображаю все сайты.
И я хочу добавить новую колонку с языками каждого сайта, но я не знаю, какой запрос я могу сделать, чтобы получить это …

Таким образом, какой запрос я должен сделать, чтобы получить все языки сайта ??

РЕДАКТИРОВАТЬ : мое действие, которое отправляет данные в шаблон веточки:

public function indexListSiteAction()
{
$repository = $this->get('doctrine')
->getRepository('BackBundle:Site');

if (!$repository) {
throw $this->createNotFoundException('Unable to find Site entity.');
}

$sites = $repository->findAll();

return $this->render('BackBundle:Site:site_list.html.twig', array(
'sites'       => $sites,
));
}

0

Решение

Вы можете получить доступ $languages в вашем шаблоне очень легко.

Вы бы сделали что-то вроде этого:

<ul>
{% for element in entity.languages %}
<li>{{ element.name }}</li>
{% endfor %}
</ul>

Я рекомендую прочитать документация о петлях в прут.

0

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

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

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