Хотя я не рекомендую этот метод, но это простой способ запроса таблицы и отображения информации на странице без перехода в Userfrostings MVC.
В index.php
чуть ниже комментарии к страницам используйте этот код, чтобы зарегистрировать страницу с адресом url как /mysales
, он также извлекает информацию пользователя из таблицы user_sales и отображает mysales.twig, чтобы отобразить эту информацию.
$app->get('/mysales/?', function() use ($app) {
// Access-controlled page
if (!$app->user->checkAccess('uri_dashboard')){
$app->notFound();
}
$db_config = $app->config('db');
$db_mysqli = new mysqli($db_config['db_host'], $db_config['db_user'], $db_config['db_pass'], $db_config['db_name']);
$sales_rows = array();
$result = $db_mysqli->query('select `description`, `total` from `user_sales` where `user_id` = 10 ');
if($result){
while($row = $result->fetch_assoc()) {
$sales_rows[] = $row;
}
}
$app->render('mysales.twig', [ //calls to render mysales.twig
'sales_rows' => $sales_rows //passing variables to twig
]);
});
Теперь создайте mysales.twig
внутри userfrosting/templates/themes/default
папки, имеющий код для отображения содержимого из sales_rows прута переменного. Это продлит dashboard-layout.twig
так, чтобы навигационные панели оставались на месте.
{% extends "layouts/layout-dashboard.twig" %}
{% set page_group = "dashboard" %}
{% block page %}
{% set page = page | merge({
"title" : "My Sales",
"description" : ""
}) %}
{{ parent() }}
{% endblock %}
{% block content %}
<h1>My Sales</h1>
<table border="1">
<tbody>
<tr>
<td><strong>Description </strong></td>
<td><strong>Total </strong></td>
</tr>
{% for sales in sales_rows %}
<tr><td>{{ sales.description }}</td><td>{{ sales.total }}</td></tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
и это так теперь, если вы войти и перейти к /mysales
вы должны получить информацию из таблицы.
Прошли ли вы через обучающие программы UserFrosting? Он использует механизм шаблонов Twig, поэтому вам нужно делать ваши запросы в классах контроллеров, а затем передавать результаты в свой призыв к 'render'. – alexw