2014-12-04 131 views
2

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

代码:

{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} 

输出:

{如果bond_payment_frequency == 'A'} {年度如果:ELSEIF bond_payment_frequency == 'SA'}年半年度{如果:其他}季刊{/如果}

解决方案:

<?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 } ?> 
+0

我正在使用标准的CI船舶,我认为 – 2014-12-04 15:50:16

+0

嗨! 您是否在__contruct() $ this-> load-> library('parse'); ? – demenvil 2014-12-04 15:52:16

+0

是的,我正在加载解析库 – 2014-12-04 15:52:51

回答

2

关于the documentation,我不认为你可以用标准CI的模板解析器类构建条件。

你可以像使用{bond} [...] {/bond}一样循环访问数组,但我认为你不能写{if}条件。

像医生说:

模板解析器类可以解析包含你的视图文件中的伪变量。它可以解析简单变量或变量标签对。

[...]

还要注意:模板解析类不是一个完全成熟的模板解析方案。为了保持最佳性能,我们一直非常精益求精。

+0

感谢您的澄清我已经重做了使用直接PHP – 2014-12-04 15:59:55

+0

的模板请注意,您可以使用像Smarty这样的“真正的”模板引擎,非常适合CI。 – 2014-12-04 16:00:43