显示 table 行以下条件 - codeigniter

Display table line following condition - codeigniter

我在我们的管理面板中有一个 table。 table 显示优惠券和交易,但为了更好地阅读,我们希望拆分 table。 1 个用于优惠券,1 个用于交易。

我不知道如何根据交易或优惠券的状态只显示数据。

下面是我获取所有数据并创建 table.

的循环
<tbody>
    <?php 
    $this->load->helper('text');
    $count = 0;
    foreach ($result as $key => $value) {
        $count++;?>  
        <tr>
        <td><?php echo $count;?></td>
        <td><?php echo  wordwrap($value->deal_title,25,"<br>\n");?></td>
        
        <td> <?php 
                if($value->deal_type == 0){
                    echo 'Deal';
                }else{
                    echo 'Coupon';
                }
            ?>  </td>
        
        <td> <?php 
                $ext = explode(' ', $value->created_at);
                echo $ext[0];
            ?>
            </td>
        <td>
            <?php 
                $user_details = get_likes($value->id);
                echo @$user_details[0]->likes; 
            ?>
        </td>
            <td>
            <?php 
                if($value->deal_status == 1){
                    echo 'Not published';
                }else{
                    echo 'Published';
                }
            ?>
        </td>                                
        
        </tr>
    <?php }?>
</tbody>

无论您是想要两个 table 还是一个 table 中间的空行,我强烈建议您几乎完全在控制器层准备数据负载并传递该数据以你的观点。这意味着您将需要操作模型数据,以迭代方式调用 get_likes(),并可能对数据进行排序或将结果分组到三级数据集中。

对于分组,负载应该是包含对象索引数组的关联数组。

下面是视图在不进出 php 标签的情况下大致的样子。请记住,责任不是收集或处理数据,而是呈现数据。

$rowTemplate= <<<HTML
    <tr>
        <td>%d</td>
        <td>%s</td>
        <td>%s</td>
        <td>%s</td>
        <td>%s</td>
        <td>%s</td>
    </tr>

HTML;

foreach ($groups as $groupName => $groupRows) {
    printf('<table id="%s">', $groupName);
        foreach ($groupRows as $index => $row) {
            printf(
                $rowTemplate,
                $index + 1,
                wordwrap($row->title, 25, "<br>\n"),
                ucfirst($groupName),
                strstr($row->created_at, ' ', true),
                $row->user_likes,
                $row->status == 1 ? 'Not published' : 'Published'
            );
        }
    echo '</table>';
}

至于你的控制器,它应该以这样的方式结束:

$groups = [
    'Deals' => [
        (object)[
            'title' => 'foo',
            'created_at'= '2022-02-14 15:35:56',
            'user_likes' => get_likes($value->id)[0]->likes ?? 0,
            'status' => 1
        ],
        (object)[
            ...
        ],
        ...
    ],
    'Coupons' => [
        (object)[
            ...
        ],
        ....
    ]
];

$this->load->view('part_1_3', ['groups' => $groups]);

当然,我的静态声明$groups需要替换成你对模型的调用等准备工作