使用 Smarty 模板切换和大小写?

Switch and case with Smarty templates?

我是 smarty 的新手。我正在尝试将 switch 和 case 功能与 smarty 一起使用。 这是我使用的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?感谢您的宝贵时间。

我不确定在 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);