我想从请求($ request-> getUri() - > getBasePath();)总是可用的模板。我该怎么做,例如用中间件而不必将上面的参数作为参数传递给renderer->每次都在所有路径上渲染?Slim框架3 php-view变量
$app->get(...
...
$args['basepath']=$request->getUri()->getBasePath();
return $this->renderer->render($response, 'test.php', $args);
});
UPDATE:
dependencies.php:
$container['renderer'] = function ($c) {
$settings = $c->get('settings')['renderer'];
return new Slim\Views\PhpRenderer($settings['template_path']);
};
middleware.php:
$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);
});
这可以PHP-视图2.1.0作为这样之后进行
然后,模板内:
<?php
$basePath=$uri->getBasePath();
$rpath=$uri->getPath();
?>
添加了问题请求:https://github.com/slimphp/PHP-View/issues/21 – sivann