Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 细枝模板上表单字段的设置值_Symfony_Twig_Symfony4 - Fatal编程技术网

Symfony 细枝模板上表单字段的设置值

Symfony 细枝模板上表单字段的设置值,symfony,twig,symfony4,Symfony,Twig,Symfony4,我试图设置登录到细枝模板的用户信息,但找不到方法。 特别是,我尝试创建一个评论部分,我希望用户只写评论文本。这样做,我希望在模板小枝上设置author(app.user.username),因为我无法获取控制器文件上的用户信息 因此,在我的控制器文件中,在函数显示中,我将: if($form->isSubmitted() && $form->isValid() ){ $comment->setCreatedAt(new \DateTime()

我试图设置登录到细枝模板的用户信息,但找不到方法。 特别是,我尝试创建一个评论部分,我希望用户只写评论文本。这样做,我希望在模板小枝上设置author(app.user.username),因为我无法获取控制器文件上的用户信息

因此,在我的控制器文件中,在函数显示中,我将:

 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