Prestashop使整数在smarty中爆炸

时间:2014-08-18 09:51:06

标签: php smarty prestashop-1.5 prestashop-1.6

我在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="">

所以有人可以告诉我如何在有一个带有两个数字的image_id并将它们用/(斜杠)分开时爆炸image_id。 希望你明白我的观点。任何帮助都会非常明显。感谢

1 个答案:

答案 0 :(得分:0)

您需要使用PHP函数str_splitimplode作为修饰符(如果需要,您当然可以在PHP中执行相同操作)。我已经为此创建了示例脚本。

PHP文件:

$users = Array
(
    0 => Array
    (
        'image_id' => 2

    ),
    1 => Array
    (
        'image_id' => 45

    ),
    2 => Array
    (
        'image_id' => 101

    ),
    3 => Array
    (
        'image_id' => 2012

    ),

);

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

Smarty模板:

{foreach from=$users item=row}
    img/{$row.image_id|str_split|implode:'/'}/{$row.image_id}.jpg<br />
{/foreach}

输出:

img/2/2.jpg
img/4/5/45.jpg
img/1/0/1/101.jpg
img/2/0/1/2/2012.jpg

PS。您应该在不使用var_dump但使用var_export的问题中提供PHP数据,以便可以轻松粘贴而无需修改。