Как добавить пользовательский MySQL-запрос на страницу пользователя, которая делит базу данных с Prestashop?

Я установил Userfrosting на тот же хостинг, на котором также установлен Prestashop. Userfrosting использует ту же базу данных, что и Prestashop.

Я хочу создать страницу, на которой пользователи, зарегистрированные на Userfrosting, смогут просматривать свои продажи в моей электронной торговле. (Поставщик Prestashop = пользователь, замораживающий пользователь)

Как я могу сделать собственный запрос SQL на этой странице? Я нашел запрос, где я могу отфильтровать продажи по поставщикам в prestashop, но не знаю, как реализовать это с помощью UserFrosting (он использует HTML-страницы).

4

Решение

Хотя я не рекомендую этот метод, но это простой способ запросить таблицу и показать информацию на странице, не попадая в 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 Вы должны получить информацию из таблицы.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]