【发布时间】:2018-11-14 16:34:47
【问题描述】:
我正在努力解决 Symfony 3.4 中与 Twig 相关的问题。基本上,我有两个变量,我想将它们用作模板中 javascript 的值。
这两个变量($selected_tipoopera 和 $selected_year)可以通过由呈现模板的同一控制器管理的表单进行更改。
控制器的代码如下所示:
$selected_tipo_opera = "S"; // the default value
$selected_year = ""; // the default value
// other stuff / code (form creation and management of form events)
$form_operas_type_and_year->handleRequest($request);
if($form_operas_type_and_year->isSubmitted() && $form_operas_type_and_year->isValid()){
$selected_tipo_opera = $form_operas_type_and_year->getData()["operas_type"];
$selected_year = $form_operas_type_and_year->getData()["year"];
}
// fetch data based on $selected_tipo_opera and $selected_year
return $this->render('frontend/opere.html.twig',
array(
"opere" => $opere,
"form_operas_type_and_year" => $form_operas_type_and_year->createView(),
"selected_tipoopera" => $selected_tipo_opera,
"selected_year" => $selected_year
));
奇怪的是控制器捕捉到两个变量值的变化,而树枝模板总是为$selected_tipoopera和$selected_year打印“S”和“”。
我做错了什么?它与表单有关吗?
提前感谢您的任何建议。
更新
<script type="text/javascript">
var year = "{{ selected_year }}";
var stp = "{{ selected_tipoopera }}";
</script>
【问题讨论】:
-
你能告诉我们Twig模板代码在哪里呈现这些变量吗?
-
@yceruto 帖子已用树枝代码更新
-
@yceruto 我找到了解决方法!我无法在 javascript 中但在 html 中打印变量。因此,我可以使用 javascript(例如 jQuery)访问 html 元素来获取它们的值。但是我认为应该可以将 Twig 与 Symfony 变量一起使用并进行某种类型的转义(但我找不到正确的方法!)。
标签: php symfony twig symfony-3.4