Symfony 细枝模板上表单字段的设置值
我试图设置登录到细枝模板的用户信息,但找不到方法。 特别是,我尝试创建一个评论部分,我希望用户只写评论文本。这样做,我希望在模板小枝上设置author(app.user.username),因为我无法获取控制器文件上的用户信息 因此,在我的控制器文件中,在函数显示中,我将:Symfony 细枝模板上表单字段的设置值,symfony,twig,symfony4,Symfony,Twig,Symfony4,我试图设置登录到细枝模板的用户信息,但找不到方法。 特别是,我尝试创建一个评论部分,我希望用户只写评论文本。这样做,我希望在模板小枝上设置author(app.user.username),因为我无法获取控制器文件上的用户信息 因此,在我的控制器文件中,在函数显示中,我将: if($form->isSubmitted() && $form->isValid() ){ $comment->setCreatedAt(new \DateTime()
if($form->isSubmitted() && $form->isValid() ){
$comment->setCreatedAt(new \DateTime())
->setExercice($exercice)
//would like to do it but cannot
//->setAuthor(app.user.username);
所以我想找到一种方法来制作
{{form\u行(commentForm.author,{'attr':{
“值”:app.user.username,
“类”:隐藏
}})}}
有办法吗
我得到的错误是:
Variable "hidden" does not exist.
您的原始错误,
变量“hidden”不存在。
之所以发生,是因为您试图引用hidden
,就好像它是变量或常量,而不是文字字符串一样。要将其用作文字字符串,您需要引用它:
{{ form_row(commentForm.author, {attr: {
value: app.user.username,
class: 'hidden'
}}) }}
您不需要引用数组的键(例如值:
和类:
),因为非标量值不能用作键
然而,正如@msg指出的,您不应该依赖视图上的表单来获取用户详细信息。这将打开表单进行操纵,这意味着任何人都可以在发布的任何评论中模仿其他人。在控制器中直接填充
注释
实体的该字段。-如果在检查表单是否已提交之前执行此操作,则视图也可以使用该信息,例如,将$comment
暴露到视图将意味着{{comment.username}}
也可以工作。我仍然在表单上显示作者字段。。。我这样做:{form_row(commentForm.author,{'attr':{'class':'hidden'},'value':app.user.username}}}}为什么你不能“获取控制器上的用户信息”?注入Security$Security
并调用$Security->getUser()
。还有其他原因吗?谢谢,现在可以了!我不知道,我只是在学symfony