[英]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.