簡體   English   中英

在.twig文件苗條框架中使用php代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM