Php 循环中的Codeigniter模板(if/else if)
我有一个循环的记录,我正在解析到一个CI模板,我需要对该循环中的一个值运行if,但我得到的只是html中输出的字符串。有人能告诉我我做错了什么吗 代码: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} 输出: {如果债券
{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 } ?>