Я хотел бы спросить, как передать многострочную (строку с переносом строки) переменную в шаблон веточки.
Я заполняю строковую переменную циклом, мне это нужно с концами строк.
foreach($rows as $row)
{
$popissouboru = $row['jmeno_souboru'];
$smernice.= $popissouboru.PHP_EOL;
}
Затем я передаю эту переменную в twigtemplate (HTML), где затронутая строка выглядит так
<p class = "w3-text-black">{{ smernice }}</p>
Но окончательный вывод игнорирует концы строк, и все находится в одной строке ...
Есть идеи, как пропустить разрывы / концы строк?
Спасибо
Янв
Мне нужно визуальное отображение в браузере ... Кстати, я уже нашел способ - я создаю строку с тегами html ---> $ smernice. = '<p>'. $ Popissouboru. '</p>'; и в шаблоне я использовал это {{smernice | raw}}
Хорошо, не забывайте, что вы всегда можете использовать фильтр nl2br для преобразования новой строки в разрывы
да, это тоже нормально, я попробую






Я просто наткнулся на это, когда искал решение той же проблемы. Я добавляю это как примечание для себя и для будущих читателей:
Если актуальная проблема заключается в том, чтобы получить разрывы строк в HTML, просто используйте nl2br
{{ content | nl2br }}
или просто сгенерируйте рассматриваемый контент с помощью тегов <br> или <p> в первую очередь, как намекает OP.
Если вы просто хотите удалить символы новой строки, используйте replace:
{{ content | replace({"\n":""}) }}
Если ваш контент также включает в себя окончания строк Windows, используйте:
{{ content|replace({"\n":'', "\r":''}) }}
или просто используйте фильтр отделка, который внутренне использует функцию обрезки PHP, которая удаляет все виды пробелов в начале и в конце строки:
{{ content |trim }}
Вы также можете сгенерировать цикл for-each внутри своего шаблона веточки. Если вам нужны разрывы строк, вы можете создать таблицу без границ и для каждого значения цикла использовать одну строку таблицы. Однако это может выходить за рамки вашей цели. Я все равно попробую. Может, поможет:
{% for user in users %}
<table border = "0">
<tr>
<td>{{ user.user_id }}</td>
</tr>
<tr>
<td>{{ user.user_name }}</td>
</tr>
<tr>
<td>{{ user.user_type }}</td>
</tr>
</table>
{% endfor %}<?php
require_once 'vendor/autoload.php'; // automatically load pathes
require_once "utils/Database.class.php"; // include database configuration
// init twig
$loader = new Twig_Loader_Filesystem('template/'); // determines template path
//creates twig object and instances
$twig = new Twig_Environment($loader, array(
"debug" => "true",
));
$twig->addExtension(new Twig_Extension_Debug());
include "utils/injector.php"; //sql injection
/* ------- */
DatabaseLink::getInstance()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// fetch data from database
$stmt = DatabaseLink::getInstance()->query("SELECT * FROM user");
$userData = $stmt->fetchAll();
//template values
$templateName = "listUsers.twig";
$data = array(
"users" => $userData
);
//display
echo $twig->render($templateName, $data);
Вам нужно реальное визуальное представление в браузере или только в исходном коде?