繁体   English   中英

以Symfony形式为实体设置字段

[英]Setting A Field to Entity in Symfony Form

在我的项目中,我有两个实体。 发表和评论。

Comment实体具有以下字段

  • 名称
  • 信息
  • 发布

我在发布后立即呈现评论表单。 目前,我以评论形式获得一个下拉菜单,从中可以选择一个帖子。 我不是那样 我想将发布字段设置为默认值,该默认值与在其上方呈现的发布相同。 而且它不应更改。
我该如何实现这种行为?

更新

我的控制器中有以下代码$ comment = new Comment();

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

在这段代码中,我设置了post值,它是表单中的默认值,但是它是可变的。

我正在使用以下代码创建表单:

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')
    ;
  }

您应该在控制器中设置comment $ post值。 您能告诉我您的Post控制器的发布/显示操作吗?

基本上,您可以显示帖子的动作,在控制器中,您可以使用帖子对象,因此在发布触发器时,您应该执行以下操作

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

然后执行所需的操作,例如对数据库进行刷新注释。

在树枝中,您不应使用下拉菜单显示该部分。

如果您能够粘贴树枝和控制器,我将向您显示解决方案。

试试这个

残障人士

类型:布尔默认值:false

如果您不希望用户修改字段的值,则可以将Disabled选项设置为true。 任何提交的值将被忽略。

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')
    ;
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM