Sonata Admin Bundle - Пользовательское поле с URL

0

Есть ли способ показать URL-адрес с фильтром в другой список сущностей вместо отображения всех связанных объектов?

Мой объект имеет ссылку OneToMany на события:

/**
 *
 * @ORM\OneToMany(targetEntity="Event", mappedBy="organizer", cascade={"ALL"})
 */
private $events;

$formMapper-> add ('events') показывает мне вход select2 со всеми событиями.

Я просто хочу показать ссылку на список событий с фильтром текущему владельцу.

Я использую Symfony 2.5.

Теги:
sonata-admin

1 ответ

0
Лучший ответ

Да, это возможно.

Вы должны получить текущего владельца и создать собственный построитель запросов, чтобы получать только события, связанные с идентификатором владельца.

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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню