如何获取树枝中的当前会话数组计数?

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

在我实例化树枝的引导文件中:

$twig->addGlobal('cart', $session->get('cart'));

并且在我树枝的顶部导航栏中,我有一个徽章来显示购物车中添加了多少个物品,如下所示:

{{ cart|length }}

和我在上面说的引导文件之后调用的主文件,我有:

if (!empty($_getvars['id'])) {
    $data = $session->get('cart');
    if(!isset($data[$_getvars['id']])) {
        $data[$_getvars['id']] = 0;
    }
    $data[$_getvars['id']] += 1;
    $session->set('cart', $data);
} 
print_r($session->get('cart'));

添加到会话中可以很好地工作,上面的打印调试表明它是正确的,但是在顶部导航栏徽标中,我总是获得以前的项目数量,而不是当前数量,除非我刷新页面以显示当前内容。如何解决?

php symfony session twig symfony4
1个回答
3
投票

不是设置全局树枝变量,而是像这样直接从模板中的会话中读取:

{% set cart = app.session.get('cart') %}
{{ cart|length }}

或者简单地:

{{ app.session.get('cart')|length }}

这应该为您提供更新的值(在控制器操作处理完数据之后。)>

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