在我实例化树枝的引导文件中:
$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'));
添加到会话中可以很好地工作,上面的打印调试表明它是正确的,但是在顶部导航栏徽标中,我总是获得以前的项目数量,而不是当前数量,除非我刷新页面以显示当前内容。如何解决?
不是设置全局树枝变量,而是像这样直接从模板中的会话中读取:
{% set cart = app.session.get('cart') %}
{{ cart|length }}
或者简单地:
{{ app.session.get('cart')|length }}
这应该为您提供更新的值(在控制器操作处理完数据之后。)>