Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环中的Codeigniter模板(if/else if)_Php_Codeigniter - Fatal编程技术网

Php 循环中的Codeigniter模板(if/else if)

Php 循环中的Codeigniter模板(if/else if),php,codeigniter,Php,Codeigniter,我有一个循环的记录,我正在解析到一个CI模板,我需要对该循环中的一个值运行if,但我得到的只是html中输出的字符串。有人能告诉我我做错了什么吗 代码: {bond} {债券发行人} {bond_bond} {如果债券支付频率=='A'} 年度 {if:elseif bond_payment_frequency=='SA'} 半年度 {if:else} 每季的 {/if} {债券息票{u pa} {债券到期日} {债券收益率} {bond_asx_code} {/bond} 输出: {如果债券

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

代码:

{bond}
{债券发行人}
{bond_bond}
{如果债券支付频率=='A'}
年度
{if:elseif bond_payment_frequency=='SA'}
半年度
{if:else}
每季的
{/if}
{债券息票{u pa}
{债券到期日}
{债券收益率}
{bond_asx_code}
{/bond}
输出:

{如果债券支付频率=='A'}每年{如果:其他 债券支付频率==“SA”}半年{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 } ?>

关于这一点,我认为您无法使用标准CI的模板解析器类构建条件

您可以像使用
{bond}[…]{/bond}
那样循环数组,但我认为您无法编写
{if}
条件

就像医生说的:

模板解析器类使您能够解析视图文件中包含的伪变量。它可以解析简单变量或变量标记对

[……]

还要注意:TemplateParser类不是一个成熟的模板解析解决方案。为了保持最佳性能,我们特意将其保持在非常精简的状态


我使用的是标准的CI,我想你好!您在uu construct()$this->load->library('parse');中做得这么好吗?是的,我正在加载解析库OK,那么如何调用模板?像这样=>$this->parser->parse('template',$data);或者使用load->view()?我使用
$this->parser->parse('template',$data)调用它感谢您的澄清,我重新制作了模板,使用了直截了当的PHPNote,但是您可以使用“真正”的模板引擎,如Smarty,它非常适合CI。
<?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 } ?>