哪一个比将HTML标记设置为PHP变量要好';的值和要查看的初始导演


Which one if better than for setting HTML tag to PHP variable's value and initial director to view?

我想将html标记声明为PHP变量的字符串值,并在Nav()函数中返回该变量,该函数将把该变量放在MY_Model上,而我将把该值转移到Pages_Controller上的$menu变量中喜欢$this->data['munu'] = $this->MY_Model("nav");,则我将回显此$menu变量以查看为<?PHP echo $menu; ?>。所以我的意思是,我不会在视图中平面化或包装我的html标记,我已经在Nav()函数中包装了它。

所以我想问所有的朋友,这比在View文件夹中的一些文件中的html标签上包装$menu变量更快或更好吗?

这是我的简单代码

Class Pages extends CI_Controller{
       $this->load->model("MY_Model");
       $this->data['menu'] = $this->MY_Model->nav();
}

这是我的My_Model

Class MY_Model extends CI_Model{
      Public function nav(){
             $str ='<html><div><nav>Here is the wraper of html tage and PHP variable which retrieve value from Database </nav></div></html>';
return $str;
}
}

这是我的**页面。视图**中的PHP

<?PHP echo $menu; ?>

不是这里只是简单的代码,但我的网站中的代码正常工作,但我担心这种结构比在page.PHP的HTML标签上包装PHP变量更好?

请帮忙展示一些想法。

准则:
1)模型仅用于查询数据库、获取结果,仅此而已。
2)HTML标记不应该在控制器中(这不是一个好的做法)
3)在回答您的问题时,将HTML标记保留在Controllers中不会有任何区别(更快或更慢),但您将不会干扰代码
4)还有为什么我们使用MVC架构来保持HTML(视图)和DB查询(模型)的分离。你的方法根本不是面向MVC的。

这里有一个更好的方法,


控制器:

<?php
class Xyz extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('xyz_model');
    }
    public function abc()
    {
        $data['menu'] = $this->xyz_model->get_menus();
        $this->load->view('xyz',$data);
    }
}


型号:

<?php
class Xyz_model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
        $this->db = $this->load->database('default',true);
    }
    public function get_menus
    {
        $query = $this->db->get('menus');
        return $query->result();
    }
}


视图:

<html>
    <div id="menu">
        <ul>
        <?php foreach($menu as $m) { ?>
        <li><?php echo $m->name; ?></li>
        <?php } ?>
        </ul>
    </div>
</html>