2015-11-16 3 views
0

В моем проекте у меня есть два объекта. Сообщение и комментарий.Настройка поля для объекта в форме Symfony

Comment объект имеет следующие поля

  • имя
  • сообщения
  • сообщений

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

UPDATE

У меня следующий код в моем контроллер $ комментарий = новый комментарий();

$comment -> setPost($entity); 
$commentForm = $this -> createCommentForm($comment); 
return array(
    'entity'  => $entity, 
    'delete_form' => $deleteForm->createView(), 
    'comment_form' => $commentForm->createView() 
); 

В этом коде я устанавливаю пост значение, которое приходит в качестве значения по умолчанию в форме, но она изменчива.

Я создаю форму, используя следующий код:

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
    $builder 
    ->add('name') 
    ->add('reference') 
    ->add('post','entity', array(
     'class' => 'OpenSourceFeedBundle:Post', 
     'required' => TRUE 
    )) 
    ->add('date', 'date', array(
     'html5' => TRUE, 
     'widget' => 'single_text', 
     'read_only' => TRUE 
    )) 
    ->add('message') 
    ; 
    } 
+0

Как это возможно? Я не вижу поле в форме комментария, которое обрабатывает это раскрывающееся меню для публикации. Поэтому в этом случае вы не должны видеть раскрывающийся список в форме комментариев, а это значит, что вы не можете его изменить. –

+0

@ MichalTakáč. Ой, извини. У меня там было поле. Просто удалил это для экспериментальной цели. Пожалуйста, проверьте сейчас. – niyasc

+0

Итак, все, что вам нужно, это удалить это поле, я думаю, и вы должны быть в порядке?вы не сможете изменить сообщение в форме комментария, и у вас будет сообщение, указанное в комментарии, не так ли? :) –

ответ

0

Вы должны установить комментарий $ запись значения в контроллере. Можете ли вы показать мне свое сообщение/показать действие вашего постконтроллера?

В основном вы должны показать действие поста, в контроллере у вас есть запись объекта доступны, поэтому, когда после запуска вы должны сделать что-то вроде этого

$comment = new Comment(); 
$comment->setPost($post); 

, а затем делать все, что вам нужно сделать, как флеш комментарий к базе данных.

В ветке вы не должны отображать эту часть с выпадающим списком.

Если вы сможете вставить веточку и контроллер, я покажу вам решение.

+0

У меня есть вопрос. Пожалуйста, смотрите. Я уже пробовал устанавливать значения для сообщения, как вы сказали. Он задает значение post как значение по умолчанию. Но все же это изменчиво. – niyasc

0

Попробуйте this

отключен Тип

: булево по умолчанию: ложные

Если вы не хотите, чтобы пользователь, чтобы изменить значение поля, вы можете установить отключенную опцию к истине. Любое переданное значение будет проигнорировано.

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
    $builder 
    ->add('name') 
    ->add('reference') 
    ->add('post','entity', array(
     'class' => 'OpenSourceFeedBundle:Post', 
     'required' => TRUE, 
     'disabled' => true, 
    )) 
    ->add('date', 'date', array(
     'html5' => TRUE, 
     'widget' => 'single_text', 
     'read_only' => TRUE 
    )) 
    ->add('message') 
    ; 
    } 
+0

В html-форме, если мы отключили какое-либо поле, оно не будет отправлено с формой. В этом случае я не буду иметь никакой ценности для публикации, когда я отправлю форму. – niyasc

Смежные вопросы