Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Slim v3中全局设置模板数据_Php_Slim - Fatal编程技术网

Php 在Slim v3中全局设置模板数据

Php 在Slim v3中全局设置模板数据,php,slim,Php,Slim,我最近开始用版本3中更新的Slim框架构建一个新的应用程序 我通常在每个模板中都有一些变量(比如用户名、日期等)。在Slim v2中,我使用钩子,然后调用如下方法: $app->view->setData(array( 'user' => $user )); 钩子已经被v3中的中间件所取代,但是我不知道如何为所有模板全局设置视图上的数据-有什么想法吗?这实际上是根据您使用的视图组件,Slim 3 project提供了2个组件和 对于Twig视图,您可以使用offset

我最近开始用版本3中更新的Slim框架构建一个新的应用程序

我通常在每个模板中都有一些变量(比如用户名、日期等)。在Slim v2中,我使用钩子,然后调用如下方法:

$app->view->setData(array(
    'user' => $user
));

钩子已经被v3中的中间件所取代,但是我不知道如何为所有模板全局设置视图上的数据-有什么想法吗?

这实际上是根据您使用的视图组件,Slim 3 project提供了2个组件和

对于Twig视图,您可以使用offsetSet,这是一个基本的示例,我将使用该示例,但还有一行代码将foo变量设置到视图中

您只需使用

{{ foo }}
对于PHP视图,它有不同形式的向模板传递变量,您可以在

用于细枝视图


$view->getEnvironment()->addGlobal($name,$value)

您使用的视图引擎的类型是什么?是PHP视图还是Twig视图?我目前正在使用Smarty视图,不过我不介意切换-还没有很多模板,我只是使用了它,因为我以前使用过它。实际上,我是根据Slim 3的两个基本组件,PHP视图和Twig视图来回答的
{{ foo }}
// via the constructor
$templateVariables = [
    "title" => "Title"
];
$phpView = new PhpRenderer("./path/to/templates", $templateVariables);

// or setter
$phpView->setAttributes($templateVariables);

// or individually
$phpView->addAttribute($key, $value);