codeigniter解析器条件问题

时间:2016-04-16 13:11:38

标签: codeigniter parsing conditional-statements

我必须更改我的项目并删除视图中的所有PHP代码。项目是用CodeIgniter编写的。

我实现了用解析器类消除php代码,但该类没有条件(if,else,..)。到目前为止,我尝试安装一些模板引擎但没有任何成功。每个教程都缺少一步,或者某些步骤没有明确解释。

任何人都可以帮助我并告诉我应该去哪个方向或做什么。也许解释一下我可以在控制器中做出所有陈述,只列出我需要的东西。

2 个答案:

答案 0 :(得分:0)

如果你想消除你视图中的所有php标签

<?php //logic ?>

您可以单独使用smarty,也可以使用CI或其他类似的系统。但是你需要学习新的sintax作为php。

另一方面,你可以在你的控制器中制作你的ogic(不推荐)

Controller.php这样

function do_somthing(){
    $var_l = '<table>';
    $var_l .= '<thead>';
    $var_l .= '<th>uno</th>';
    $var_l .= '<th>dos</th>';
    $var_l .= '<th>tres</th>';
    $var_l .= '</thead>';
    $var_l .= '<tbody>';

    $a = array('a', 'b', 'c');

    foreach($a as $item){
        $var_l .= '<thc'.$item.'</th>';
    }

    $var_l .= '</tbody>';
    $var_l .= '</table>';

    $data['table'] = $var_l;

    $this->load->view('view', $data);
}

你的view.php

<!DOCTYPE html>
<html>
<body>

info to display table

<?= $table ?>

</body>
</html>

答案 1 :(得分:0)

我在codeigniter中定期解析,并以这种方式完成:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
 <body>
  <?php echo $content ?>
 </body> 
</html> 

在这样的控制器中:

    $query = $this->users_mod->allProducts();
    $data = array(
              'ap_heading' => 'Product definition',
              'ap_entries' => $query,
            );
    $content = $this->parser->parse('allproducts', $data, TRUE); 
    $this->load->view('template', compact('content'));

我可以在控制器中以某种方式避免这种情况:压缩('内容')和php在视图中?