2016-07-25 114 views
0

我在我的项目中安装了TWIG,但无法加载我的宏,我想创建一个文件测试(例如testmacro.twig),他们调用我的宏(例如test.twig),但我不能:(使用TWIG加载宏

test.twig

{% macro test (options) %} 

    {% if options.titre is not empty %} 
     coucou {{ options.titre }} 
    {% endif %}  

{% endmacro } 

testmacro.twig

{% import "/home/valentin/Bureau/htdocs/templates/test.twig" as test %} 

{{ test.test ({ titre : 'aaaaaaah' }) }} 

错误:

Fatal error: Uncaught exception 'Twig_Error_Loader' with message 'Unable to find template "/home/valentin/Bureau/htdocs/templates/test.twig" (looked into: templates) in "testmacro.twig" at line 1.' in /opt/lampp/htdocs/Twig/Loader/Filesystem.php:215 Stack trace: #0 /opt/lampp/htdocs/Twig/Loader/Filesystem.php(139): Twig_Loader_Filesystem->findTemplate('/home/valentin/...') #1 /opt/lampp/htdocs/Twig/Environment.php(312): Twig_Loader_Filesystem->getCacheKey('/home/valentin/...') #2 /opt/lampp/htdocs/Twig/Environment.php(378): Twig_Environment->getTemplateClass('/home/valentin/...', NULL) #3 /opt/lampp/htdocs/Twig/Template.php(286): Twig_Environment->loadTemplate('/home/valentin/...', NULL) #4 /opt/lampp/htdocs/Twig/Environment.php(403) : eval()'d code(19): Twig_Template->loadTemplate('/home/valentin/...', 'testmacro.twig', 1) #5 /opt/lampp/htdocs/Twig/Template.php(387): __TwigTemplate_e0a6b64206d91d57c5131f111d33ce0450565dc8429fccbaf4af635b1ac6ec27->doDisplay(Array, Array) #6 /opt/lampp/htdocs/Twig/Template.php(355): Twig_T in /opt/lampp/htdocs/Twig/Loader/Filesystem.php on line 215 

twig.php:

<?php 
include_once('Twig/Autoloader.php'); 
Twig_Autoloader::register(); 

$loader = new Twig_Loader_Filesystem('templates'); // Dossier contenant les templates 
$twig = new Twig_Environment($loader, array(
    'cache' => false 
)); 

的index.php

<?php 
include('twig.php'); 
$template = $twig->loadTemplate('testmacro.twig'); 
echo $template->render(array()); 

>

我不明白..:?/

你能帮助我吗?提前致谢 !

回答

0

模板路径是相对于您在Twig_Loader_Filesystem设置参数的文件夹:

$loader = new Twig_Loader_Filesystem('templates'); 
你的情况模板路径

因此,从文件夹templates启动,这也是includesmacros...正确:

{% import 'test.twig' as test %}