【问题标题】:How we can add session variables so we can use them in all templates?我们如何添加会话变量以便我们可以在所有模板中使用它们?
【发布时间】:2020-07-03 14:39:24
【问题描述】:

我们如何在Grav 中添加一个会话并在所有树枝模板中使用它?

要在Grav 中设置自定义会话并在所有 twig HTML 模板中全局使用这些会话,我们可以通过在控制器中全局设置会话来实现。

【问题讨论】:

    标签: twig grav


    【解决方案1】:
    1. 在插件控制器文件中 (在我的例子中:user-plugins-pluginName-pluginName.php)
    public static function getSubscribedEvents() {
        return [
            'onTwigExtensions' = ['onTwigExtensions', 0]
        ];
    }
     
    public function onTwigExtensions() {
        require_once(__DIR__ . '/pluginName.php');
        $this-grav['twig']-twig-addExtension(new PluginNameTwigExtension());
        $this-grav['twig']-twig-addGlobal("session", $_SESSION);
    }
    

    像这样全局添加会话,通过执行此会话可以在任何树枝模板中进一步使用。

    1. 然后,我们需要像这样设置会话变量
    $_SESSION['key'] = $_POST['value'];
    
    1. 现在我们可以在任何 twig HTML 模板中使用这个会话值:
    {{ session.key }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多