使用Smarty模板切换和案例?

时间:2017-01-26 04:41:25

标签: php smarty smarty3

我是聪明的新手。我正在尝试使用智能的开关和案例功能。 这是我使用的PHP代码

$i=1;
while ($row = mysqli_fetch_array($sql)){

    switch($i%8){

            case 1:
            case 2:
                //DO Something Here
            break;
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 0:
                //DO Something Else Here
            break;
        }
    $i++;

    }

我的问题是如何将此代码应用于Smarty?感谢你的时间。

1 个答案:

答案 0 :(得分:5)

我不确定在Smarty中复制是最好的主意。 Smarty的概念是在控制器中保持这样的逻辑。此外,您必须完全原始地将数据转换为Smarty才能在Smarty中执行此操作。换句话说,您必须将数据循环两次。相反,我将数据构建为类似array的结构,并将其传递给Smarty。你可以在smarty中使用简单的{foreach}来循环数据。

$data = array();
$i=1;
while ($row = mysqli_fetch_array($sql)){

    switch($i%8){

            case 1:
            case 2:
                $data[$i][] = $row; //DO Something Here
            break;
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 0:
                $data[$i][] = $row; //DO Something Else Here
            break;
        }
    $i++;

    }
$smarty->assign('data', $data);