我想從請求($ 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