在Codeigniter中:如何识别视图的模型和控制器?

时间:2011-09-28 03:19:00

标签: php codeigniter

有没有办法识别print_r($model)print_r($controller)等视图的型号名称和控制器名称?

例如:

view.php

<div class="data">
<?php
echo "this is from".$controller;
echo "this is from".$model;
?>
</div>

3 个答案:

答案 0 :(得分:2)

你不应该将模型中的东西直接传递给视图。 http://codeigniter.com/user_guide/overview/mvc.htmlhttp://codeigniter.com/user_guide/overview/appflow.html

如果您想将信息传递给您,可以执行此操作。

<强> model_name.php

//Class Declaration

    function get_data()
    {
       return 'This is the Model Data';
    }

<强> Controller.php这样

 //Class Declaration
    function index()
    {
        $data['controller'] = 'Data From the Controller';
        $data['model'] = $this->Model_Name->get_data();
        $this->load->view('view.php', $data);
    }

视图与您保持一致。

答案 1 :(得分:2)

控制器可以从多个模型调用,并且视图由控制器指定(或包含在控制器指定的视图中)。你真的不应该直接将模型中的数据调用到视图中。

如果您没有使用路由(或其他方式)更改段名,则可以从相应的URI段获取控制器名称。我不确定一次只能有两个控制器。然后,我再也没有必要尝试过。

我想你可以在每个函数下手动设置控制器中的变量并在页面上回显它们,但是没有一种内置的,自动化的方法来完成你正在寻找的东西。

答案 2 :(得分:2)

您可以使用以下命令获取控制器的名称:

$this->router->fetch_class();

您必须将控制器名称传递给视图(作为变量) 但是你无法在视图中识别模型 - 可能存在多个模型(在一个控制器中)。最好的方法是在模型中创建方法并将其分配给传递给视图的变量。