Есть ли способ показать URL-адрес с фильтром в другой список сущностей вместо отображения всех связанных объектов?
Мой объект имеет ссылку OneToMany на события:
/**
*
* @ORM\OneToMany(targetEntity="Event", mappedBy="organizer", cascade={"ALL"})
*/
private $events;
$formMapper-> add ('events') показывает мне вход select2 со всеми событиями.
Я просто хочу показать ссылку на список событий с фильтром текущему владельцу.
Я использую Symfony 2.5.
Да, это возможно.
Вы должны получить текущего владельца и создать собственный построитель запросов, чтобы получать только события, связанные с идентификатором владельца.
protected function configureFormFields(FormMapper $formMapper)
{
// get current owner
$ownerId = $this->subject->getId();
// using query_builder to create a custom query based on current owner
$formMapper->add('events', null, array(
'query_builder' => function(EntityRepository $er) use ($ownerId) {
$events = $er->createQueryBuilder('e');
if ($ownerId != null) {
$events = $er->where('e.owner = :ownerId')
->setParameter('ownerId', $ownerId);
}
return $events;
}
));
}
Также не забудьте добавить использование для EntityRepository:
используйте Doctrine\ORM\EntityRepository;