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