我在会话中有数组,但我无法显示它们。 我的代码: 控制器:
$game = $request->query->get('game');
$type = $request->query->get('type');
$odd = $request->query->get('odd');
$kupon = array(
'game' => $game,
'type' => $type,
'odd' => $odd,
);
$this->get('session')->set('kupon', $kupon);
游戏'例如:'阿森纳 - 切尔西','类型'数字是1,奇数是浮点数,如' 2.2'。
Twig文件:
{% if app.session.get('kupon') is not null %}
<table>
{% for kupon in session %}
<tr>
<td>{{ kupon.game }}</td>
<td>{{ kupon.type }}</td>
<td> </td>
</tr>
{% endfor %}
</table>
一切都好,但是当我尝试登录并显示数据会话时,我有这个错误:
无法在第13行的baw \ kupon.html.twig中对字符串变量(&#34; PNdjNUeZ_d5uJlm1VG7zPZhp2Vb4CY3nDf93vAQ574&#34;)访问属性(&#34;游戏&#34;)。
此变量来自登录后的会话,我检查了有关它的转储信息:
array(3) {
["_csrf/login"]=> string(43) "PNdjNUeuZ_d5uJlm1VG7zPZhp2Vb4CY3nDf93vAQ574" ["login"]=> string(4) "test"
["kupon"]=> array(3) { ["game"]=> string(31) "Arsenal Londyn - Chelsea Londyn" ["type"]=> string(1) "1" ["odd"]=> string(3) "2.2" } }
现在我无法解决这个问题。
答案 0 :(得分:2)
{% for kupon in session %}
不会循环app.session.get('kupon')
你想要做的是:
{% for kupon in app.session.get('kupon') %}
但是看着你丢弃的数据,app.session.get('kupon')
只是一个数据集,所以你甚至无法循环(带有预期的结果)......
只会:
{{ app.session.get('kupon').game }}
关于您的数据的额外说明:您在会话中有这个:
"kupon" => [
"game" => ...
"type" => ...
...
]
为了能够遍历这些,您需要创建数据类型的集合:
"kupon" => [
[
"game" => ...
"type" => ...
...
],
[
"game" => ...
"type" => ...
...
],
....
]
答案 1 :(得分:0)
尝试以下
{% if app.session.get('kupon') is not null %}
{% set kupon = app.session.get('kupon') %}
<table>
<tr>
<td>{{ kupon.game }}</td>
<td>{{ kupon.type }}</td>
<td> </td>
</tr>
</table>
{% endif %}