4

Prestashop もインストールした同じホスティングに Userfrosting をインストールしました。Userfrosting は、Prestashop と同じデータベースを使用します。

Userfrosting に登録したユーザーが自分の e コマースでの売り上げを確認できるページを作成したいと考えています。(Prestashop サプライヤー = userfrosting ユーザー)

そのページでカスタム SQL クエリを作成するにはどうすればよいですか? prestashop で仕入先別に売上をフィルタリングできるクエリを見つけましたが、UserFrosting (html ページを使用) で実装する方法がわかりません。

4

1 に答える 1

2

この方法はお勧めしませんが、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
    ]);
});

次に、sales_rows twig 変数からコンテンツを表示するコードを含むフォルダーmysales.twig内に作成します。これにより、ナビゲーション パネルが所定の位置に留まるようuserfrosting/templates/themes/defaultに拡張されます。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、テーブルから情報を取得する必要があります。

于 2016-07-20T07:05:48.080 に答える