在twig模板上设置表格字段的值。

问题描述 投票:1回答:1

我想在twig模板上设置登录的用户信息,但我找不到方法,特别是我想做一个评论区,我希望用户只写评论文字,这样做,我想在twig模板上设置作者( app.user.username),因为我无法在Controller文件中获取用户信息。

所以在我的Controller文件中,在函数show中,我放了这个。

 if($form->isSubmitted() && $form->isValid()  ){
        $comment->setCreatedAt(new \DateTime())
                ->setExercice($exercice)
                //would like to do it but cannot
                //->setAuthor(app.user.username);

所以我搜索了一个方法,也许可以做这样的东西,如

{{form_row(commentForm.author,{'attr': { 'value': app.user.username, 'class':hidden }})}}

有什么方法可以做到这一点?

我得到的错误是:

Variable "hidden" does not exist.
symfony twig symfony4
1个回答
1
投票

你原来的错误。Variable "hidden" does not exist.发生这种情况,是因为你试图引用了 hidden 就像它是一个变量或常量,而不是一个字符串一样。要把它作为一个字面字符串使用,你需要引用它。

{{ form_row(commentForm.author, {attr: {
    value: app.user.username,
    class: 'hidden'
}}) }}

你不需要引用数组中的键(例如 value:class:),因为非标量值不能用作键。

然而正如 @msg 所指出的,你不应该依靠视图上的表单来获取用户的详细信息。这将打开表单的操作,这意味着任何人都可以在发布的任何评论中冒充其他人。一定要把这个字段填入 comment 在控制器中直接对实体进行检查。-- 如果你在检查表单是否提交之前就这样做,那么信息也会被视图使用,例如,暴露出 $comment 观点意味着 {{ comment.username }} 也是可以的。

© www.soinside.com 2019 - 2024. All rights reserved.