渲染视图目录中但在另一个目录

时间:2016-10-21 01:24:55

标签: php twig

我很难尝试做这个小修改......

我想渲染一个文件(login.twig),它位于我的视图文件中,但在另一个文件夹中:/views/ajax_files/login.twig

我每次都必须这样做吗?

   require 'vendor/autoload.php';


$loader = new Twig_Loader_Filesystem('views/ajax_files');
$twig = new Twig_Environment($loader, array(
    'cache' => 'cache',
    'auto_reload' => true,

));


echo $twig->render('login.twig');

因为在我的index.php上,已经被声明了 我正在尝试编写DRY代码

require 'vendor/autoload.php';


$loader = new Twig_Loader_Filesystem('views');
$twig = new Twig_Environment($loader, array(
    'cache' => 'cache',
    'auto_reload' => true,

));


echo $twig->render('index.twig');

1 个答案:

答案 0 :(得分:2)

您还可以使用

直接在index.php中定义多个模板目录
$loader = new Twig_Loader_Filesystem(array($templateDir1, $templateDir2));

请同时查看http://twig.sensiolabs.org/doc/api.html#loaders,您也可以使用加载链或只是添加其他路径到您现有的文件系统加载器,使用一些代码,如

$loader = $twig->getLoader();
$loader->addPath('another/path/to/templates'); //or $loader->prependPath('...')
$twig->setLoader($loader);