CI - 将值从控制器传递到模型并在模型构造函数中访问它们

时间:2011-05-06 08:22:12

标签: codeigniter model controller

我遇到了问题。希望有人能帮忙。我使用codeigniter来构建我的应用程序。现在我已经想出了为整个应用程序创建单个模型。但是怎么可能?我的大四学生也问我这个问题,并告诉我这不可能。但我非常接近成功。唯一缺少的是将数据从控制器传递给模型的构造函数。

其实我的想法背后是: - >我将所有数据发送到模型的构造函数(如果可能)

- >然后验证数据(使用我自己的验证类)

- >动态设置类属性(使用标准类)

- >执行查询(查询类型将驻留在通过控制器传递的数据数组中)。

假设array[0]存储'insert',因此我将使用以下代码执行查询:$this->array[0]->.. etc

但是我的1步对我来说是个大问题。我不能说进一步的事情会起作用。

1 个答案:

答案 0 :(得分:3)

我没有得到你真正想要的东西,看起来你打算为CI框架已经为你做的很多东西编写你自己的代码。

以下是如何将数据从控制器传递到模型的示例:

class Foo extends CI_Controller {

    function bar()
    {
        $data=array('foo'=>'bar', 'abc'=> 'def');
        $this->load->model('my_model');
        $this->my_model->do_something($data);
    }
}

class My_model extends CI_Model {

    function do_something($data=array())
    {
        print_r($data);
    }
}

您可以为插入编写自己的模型函数:

function insert_data($table, $data=array()) {
    $this->db->insert($table, $data);
    // etc
}

但这只是活动记录 - 已经存在的功能。

如有必要,您可以将数据传递给模型构造函数,是的。听起来你应该重新考虑一下你的方法。

验证可以在控制器(实际上是模型)中完成,使用CI的验证类,可以根据需要进行扩展。