Ваша исходная ошибка, Variable "hidden" does not exist.
, возникает из-за того, что вы попытались сослаться на hidden
, как если бы это была переменная или константа, а не буквальная строка. Чтобы использовать его как буквальную строку, вам нужно заключить его в кавычки:
{{ form_row(commentForm.author, {attr: {
value: app.user.username,
class: 'hidden'
}}) }}
Вам не нужно заключать в кавычки ключи массива (например, value:
и class:
), потому что нескалярные значения не могут быть используются в качестве ключей.
Однако, как указал @msg, вы не должны полагаться на форму в представлении для получения сведений о пользователе. Это открывает форму для манипуляций, то есть любой может выдавать себя за других людей в любом опубликованном комментарии. Обязательно заполните это поле объекта comment
непосредственно во время контроллера. - Если вы сделаете это до проверки того, отправлена ли форма, эта информация будет доступна и для представления, например, отображение $comment
в представлении будет означать, что {{ comment.username }}
также будет работать.