Codeigniter Templating(if / else if)循环

时间:2014-12-04 15:44:52

标签: php codeigniter

我有一个记录循环,我正在解析到一个CI模板,我需要在该循环中运行一个if,但我得到的是在html中输出的字符串,有人可以告诉我我是什么做错了。

代码:

{bond}
    <tr>
        <td>{bond_issuer}</td>
        <td>{bond_bond}</td>
        <td>
            {if bond_payment_frequency == 'A' }
            Annual
            {if:elseif bond_payment_frequency == 'SA'}
            Semi Annual
            {if:else}
            Quarterly
            {/if}
        </td>
        <td>{bond_coupon_pa}</td>
        <td>{bond_maturity_date}</td>
        <td>{bond_indicative_yield}</td>
        <td>{bond_asx_code}</td>
    </tr>
{/bond}

输出:

  

{if bond_payment_frequency ==&#39; A&#39;年度{if:elseif   bond_payment_frequency ==&#39; SA&#39;}半年度{if:else}季度{/ if}

解决方案:

<?php foreach($bond as $b) {?>
    <tr>
        <td><?=$b->bond_issuer;?></td>
        <td><?=$b->bond_bond;?></td>
        <td>
            <?php
                if($b->bond_payment_frequency === 'A') {
                    echo 'Annual';
                } elseif($b->bond_payment_frequency === 'SA') {
                    echo 'Semi Annual';
                } else {
                    echo 'Quarterly';
                };
            ?>
        </td>
        <td><?=$b->bond_coupon_pa;?></td>
        <td><?=$b->bond_maturity_date;?></td>
        <td><?=$b->bond_indicative_yield;?></td>
        <td><?=$b->bond_asx_code;?></td>
    </tr>
<?php } ?>

1 个答案:

答案 0 :(得分:2)

关于the documentation,我认为您不能使用标准CI的模板分析器类构建条件。

您可以像使用{bond} [...] {/bond}一样遍历数组,但我不认为您可以编写{if}条件。

就像医生说的那样:

  

使用Template Parser Class可以解析视图文件中包含的伪变量。它可以解析简单变量或变量标签对。

     

[...]

     

另请注意:Template Parser Class不是一个完整的模板解析解决方案。为了保持最佳性能,我们一直非常精益求精。