2016-03-03 386 views
1

我想從請求($ 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(); 
?> 
+0

添加了問題請求:https://github.com/slimphp/PHP-View/issues/21 – sivann

回答

0

雖然尋找到你會看到PhpRenderer的the Code目前還沒有辦法指定datarender()功能。

您可以創建問題和/或提出拉取請求以支持該功能。