Как указать, какое значение передается с помощью поля формы выбора в Symfony2 - PullRequest
7 голосов
/ 23 сентября 2011

У меня есть следующий код, который отображает все доступные главные страницы, которые можно использовать при добавлении подстраниц в моем проекте:

        $builder->add('subtocontentid',
          'entity',
           array(
                 'class'=>'Shout\AdminBundle\Entity\Content',
                 'property'=>'title',
                 'query_builder' => function (EntityRepository $repository)
                 {
                     return $repository->createQueryBuilder('s')
                            ->where('s.mainpage = ?1')
                            ->setParameter(1, '1')
                            ->add('orderBy', 's.created ASC');
                 }
        ));

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

Я понимаю, что код, который я использую, возвращает все поля в базе данных.Как я мог выбрать только поле «Заголовок» и поле «Слаг», а затем в форме передать поле «Слаг» в базу данных?

Приветствия

1 Ответ

2 голосов
/ 29 сентября 2011

Вам придется изменить Transformer, используемый EntityType, и это не идентификатор, передаваемый в базу данных, это сущность, поскольку Transformer берет id и ищет сущность в своем списке.Так что в вашем случае это будет экземпляр Shout\AdminBundle\Entity\Content

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...