1

prestashop で小さなモジュールを作成しています。その中で、このようなデータベース(ps_customer_module)を取得しました

id image_id customer_name 
1  2        john
2  23       simon
3  45       doe
4  9        rocky

今、モジュールからこのようなデータベース全体を取得しています

$get_users = 'SELECT * FROM '._DB_PREFIX_.'customer_module;
$users = Db::getInstance()->ExecuteS( $get_users );

ここで、print_r($users) を実行しているとき。私はこのような結果を得ています

Array
(
    [0] => Array
        (
            [id] => 1
            [image_id] => 2
            [customer_name] => john
        )

    [1] => Array
        (
            [id] => 2
            [image_id] => 23
            [customer_name] => simon
        )
    [2] => Array
        (
            [id] => 3
            [image_id] => 45
            [customer_name] => doe
        )
    [3] => Array
        (
            [id] => 4
            [image_id] => 9
            [customer_name] => rocky
        )              

)

これで、このようにアレイをスマート テンプレートに割り当てました

$this->context->smarty->assign( 'users', $users );

このようなforeachループを使用して、すべての結果をリストに表示しています

<ul>
    {foreach from=$users item=row}
    <li>
        <h3>{$row.customer_name}</h3>
        <img src="img/{$row.image_id}/{$row.image_id}.jpg" alt="">
    </li>
    {/foreach}
</ul>

上記のメソッドは、単一の image_id 番号の画像で正常に機能します。image_id 1 について言ってみましょう。そこでは問題なく動作します。しかし、画像IDが45の場合、次のようになります

<img src="img/45/45.jpg" alt="">

しかし、実際の画像ディレクトリは次のようになります

<img src="img/4/5/45.jpg" alt="">

そのため、2桁のimage_idがある場合にimage_idを分解し、それらを/(スラッシュ)で区切る方法を教えてください。あなたが私の主張を理解してくれることを願っています。どんな助けでも本当にかなりの価値があります。ありがとう

4

1 に答える 1