2016-04-18 2 views
4

Я использую ветку в качестве шаблонов для моделирования, но мой html не рендеринг. Все отображается с самими тегами HTML.HTML не отображается [Twig]/[Slim]

Data from Database can be found by clicking here

Я искал SO и получил много сообщений, что обеспечивает решение, но никто не работал для меня

ниже решение:

  1. Использование ниже коды [не работает]

    {{ detailArticle.artdesc|raw }} 
    
    or 
    
    {% autoescape false %} 
        {{ detailArticle.artdesc }} 
    {% endautoescape %} 
    
  2. Используйте фильтр и автозагрузка, как показано ниже [не работает]

    $app->view = new \Slim\Views\Twig(); 
    $app->view->setTemplatesDirectory("application/view"); 
    $app->view->parserOptions = array(
        'debug' => 'true', 
        'auto_reload' => true, 
        'autoescape' => true 
    ); 
    $app->view->parserExtensions = array(new \Slim\Views\TwigExtension()); 
    
  3. Очистить Twig кэш [Я не CLI на Cpanel, поэтому не знаю, как это сделать]

    rm -rf app/cache/* OR rm -rf app/cache/prod/twig OR app/console cache:clear --env=prod 
    

Ни одно из решений, работающих на меня. Пожалуйста, направляйте.

Данные отображаются таким же образом, как вы увидите по ссылке, упомянутой выше.

Мой composer.json как ниже

{ 
"name":"panique/mini2", 
"homepage":"https://github.com/panique/mini2", 
"license":"MIT", 
"require":{ 
    "php":">=5.3.0", 
    "slim/slim": "~2.6", 
    "slim/views": "~0.1", 
    "twig/twig": "~1.16", 
    "panique/pdo-debug": "0.2", 
    "panique/php-sass": "~1.0", 
    "matthiasmullie/minify": "~1.3" 
}, 
"autoload":{ 
    "psr-4":{ 
     "Mini\\": "Mini" 
    } 
} 
} 
+0

вы пробовали с [Verbatim] (http://twig.sensiolabs.org/doc/tags/verbatim.html# verbatim)? – Matteo

+0

Как это использовать ... – Gags

+0

hi @gags Я отправляю пример в свой ответ. Дайте мне знать – Matteo

ответ

2

Я решил эту же проблему несколько месяцев назад. Вы должны написать это в PHP:

$escaper = new Twig_Extension_Escaper(false); 
$app->view->addExtension($escaper); 

Мой код

require_once 'path_to_Twig/Autoloader.php'; 
Twig_Autoloader::register(); 

$loader = new Twig_Loader_Filesystem('path_to_views/'); 
$twig = new Twig_Environment($loader, array()); 

$escaper = new Twig_Extension_Escaper(false); 
$twig->addExtension($escaper); 

echo $twig->render($view_name, $data_to_view); 

шаги с вашим кодом

  1. Скачать: http://pear.twig-project.org/get/Twig-1.24.0.tgz
  2. Распаковка и в вас proyect.
  3. напиши в файле:
require 'vendor/autoload.php'; 

// Initialize Slim (the router/micro framework used) 
$app = new \Slim\Slim(array( 
'mode' => 'production' 
)); 

require_once 'path_to_Twig/Autoloader.php'; //Substitute the Twig path, the path to the uncompress files in the project 
Twig_Autoloader::register(); 

$loader = new Twig_Loader_Filesystem('path_to_views/'); //Substitute with the path with the html files 
$twig = new Twig_Environment($loader, array()); 

$escaper = new Twig_Extension_Escaper(false); 
$twig->addExtension($escaper); 

echo $twig->render($view_name, $data_to_view); //First the name of the view html file, data that you want pass to the view in one array 

Вы должны поместить все это Whe вы хотите визуализировать вид в контроллере, то есть, вы заменяете свой код этим.

+0

Звонок на неопределенный метод Slim \ Views \ Twig :: addExtension() - это ошибка – Gags

+0

Но вы создали объект twig, а addExtension - это метод. очень странно, что вы можете создать объект, но не получить доступ к методу. –

+0

Где находится этот 'Twig_Extension_Escaper' – Gags

0

Ран с той же проблемой и решить ее путем добавления Twig_Extnesion_Escaper:

$v = new \Slim\Views\Twig(__DIR__ . '/../../templates', [ 
    'cache' => __DIR__ . '/../../templates/twigcache' 
]); 
$v->addExtension(new Twig_Extension_Escaper()); 

 Смежные вопросы

  • Нет связанных вопросов^_^