Я реализую свой первый проект Twig. У меня есть база данных MySQL. Он включает таблицу, в которой каждая запись является документом. Есть поля Title, Number и Description.Показать результаты запроса MySQL в шаблоне Twig
Без Twig было довольно просто запросить все результаты и вывести их на стол. Тем не менее, мне сложно получить запрос к Twig. Это похоже на базовую задачу, но я не нашел подобных примеров в документации Twig или в поиске.
Шаблоны Twig очень похожи на шаблоны Django/Jinja, с которыми я знаком. Мой шаблон:
{% block Content %}
<table border='1' width=100%>
{% for i in queryResult %}
<tr>
<td> {{i.Title}} </td>
</tr>
{% endfor %}
</table>
{% endblock %}
РНР для этой точки зрения выглядит следующим образом:
$connection=mysql_connect (credentials) or die ('Cannot connect to database:' . mysql_error());
$mydb=mysql_select_db(database);
$sql = query;
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);
echo $twig -> render('all_reports.html', array('queryResult'=> $result));
Который кажется правильным. Сценарий должен выполнить SQL-запрос, вернуть набор результатов в виде массива и затем отправить результат в шаблон. Шаблон должен перебирать все элементы массива (один элемент для каждой строки) и отображать их в таблице.
На самом деле происходит то, что отображаются три строки, все пробелы. Моя интерпретация заключается в том, что шаблон видит три элемента в массиве (по одному для каждого поля) вместо элемента для каждой записи в результате запроса. Они пусты, потому что в каждом поле нет поля Title. Но я не понимаю, что бы это исправить.
Just loop on $ result, чтобы поместить все данные в новый массив $ datas, а затем передать $ datas в шаблон? – Armage