首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >瘦框架3 php-视图变量

瘦框架3 php-视图变量
EN

Stack Overflow用户
提问于 2016-03-03 14:33:11
回答 2查看 2.7K关注 0票数 2

我希望在模板上始终有一个来自请求的变量($request->getUri()->getBasePath();)。我如何做到这一点,例如,使用中间件,而不必将上面的参数传递给呈现器->每次在所有路由上呈现?

代码语言:javascript
复制
$app->get(...
   ...
  $args['basepath']=$request->getUri()->getBasePath();
  return $this->renderer->render($response, 'test.php', $args);
});

更新:这可以在php 2.1.0之后完成,如下所示:

dependencies.php:

代码语言:javascript
复制
$container['renderer'] = function ($c) {
    $settings = $c->get('settings')['renderer'];
    return new Slim\Views\PhpRenderer($settings['template_path']);
};

middleware.php:

代码语言:javascript
复制
$app->add(function (Request $request, Response $response, callable $next) {
    $uri = $request->getUri();
    $renderer = $this->get('renderer');
    $renderer->addAttribute('uri', $request->getUri());
    return $next($request, $response);
});

然后,在模板中:

代码语言:javascript
复制
<?php
    $basePath=$uri->getBasePath();
    $rpath=$uri->getPath();
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-03 14:41:03

在查看“守则”的PhpRenderer时,您将看到目前没有办法在render()函数之外指定data

您可以创建一个问题和/或发出一个拉请求来支持该功能。

票数 0
EN

Stack Overflow用户

发布于 2016-03-04 09:51:37

PHP的2.1.0版本现在支持在呈现之前设置模板变量.见https://github.com/slimphp/PHP-View#template-variables

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35775010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档