[英]Using php code in .twig file slim framework
我是第一次使用Slim Framework,也使用樹枝進行模板化。 我有一個land.twig文件,該文件的內容是
<form action="index.html" method="get">
<div class="form-group">
<input type="text" class="form-control" placeholder="Full Name">
</div>
</form>
我也有一個字符串文件來支持多語言,而我稱該字符串進行翻譯的方式是lang(“ some_string”); 。 land.twig文件由控制器渲染。 我的問題是如何在那個樹枝文件中的html元素的占位符屬性內添加lang(“ some_string”)?
您可以使用Twig_SimpleFilter。
require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('/path/to/templates');
// an anonymous function
$filter = new Twig_SimpleFilter('lang', function ($string) {
//do stuff
return $string;
});
$twig = new Twig_Environment($loader);
$twig->addFilter($filter);
然后,您可以在模板中使用
<input type="text" class="form-control" placeholder="{{ 'Full Name'|lang }}">
由於您使用的是苗條及其細枝集成,因此您必須在細枝組件中添加過濾器。
// Register component on container
$container['view'] = function ($container) {
$view = new \Slim\Views\Twig('path/to/templates', [
'cache' => 'path/to/cache'
]);
$view->addExtension(new \Slim\Views\TwigExtension(
$container['router'],
$container['request']->getUri()
));
$filter = new Twig_SimpleFilter('lang', function ($string) {
//do stuff
return $string;
});
$view->getEnvironment()->addFilter($filter);
return $view;
};
除此以外,該樹枝還具有i18n擴展名 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.