如何将自定义MySQL查询添加到与Prestashop共享数据库的用户拥抱页面?

时间:2015-10-06 18:36:29

标签: php sql prestashop slim userfrosting

我在安装了Prestashop的同一主机上安装了Userfrosting。 Userfrosting使用与Prestashop相同的数据库。

我想创建一个页面,在Userfrosting上注册的用户可以在我的电子商务中查看他们的销售情况。 (Prestashop supplier = userfrosting user)

如何在该页面上创建自定义SQL查询?我找到了一个查询,我可以在prestashop上过滤供应商的销售情况,但不知道如何使用UserFrosting实现它em>(它使用html页面)。

1 个答案:

答案 0 :(得分:2)

虽然我不推荐这种方法,但这是一种查询表格并在不进入Userfrostings MVC的情况下在页面上显示信息的简单方法。

index.php下面的功能页面注释使用此代码注册一个网址为/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 twig变量内容的代码。这将扩展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,您应该从表中获取信息。