代码之家  ›  专栏  ›  技术社区  ›  rabidmachine9

我可以将参数传递到模型函数中吗?

  •  1
  • rabidmachine9  · 技术社区  · 15 年前

    在代码点火器中甚至可以做这样的事情吗?一般来说,这是一种良好的做法吗?

    2 回复  |  直到 12 年前
        1
  •  2
  •   Kieran Andrews    15 年前

    是的,这是可能的。

    我一直这样做,如果数据不是来自邮政,我可以发送到模型。

    $this->load->model('some_model');
    $this->some_model->some_function($var);
    

    您要将哪些数据发送到模型?这将有助于决定这是否是一种不好的做法。

        2
  •  1
  •   thomaux    15 年前

    当然有可能!就像Kieran展示的那样,您可以在模型类中编写接受参数的函数。

    请记住,控制器应该首先解析/验证这些参数,模型中不应该包含额外的验证。您的模型应该严格用于对数据库进行写入和读取。

    因此,作为一个好的实践,您应该只传递包含要在查询中存储或使用的实际数据的参数。

    我通常为不同的where cases编写不同的函数。例如:

    select($id){}
    select_by_name($name){}
    ...
    

    这使你的模型易于理解。我唯一的例外是限制你的结果。在我的所有模型中,我都有选择所有记录的函数,可以选择为分页目的再传递两个变量:

    select_all($start=null,$limit=null){
        $qry = "SELECT * FROM ...";
        if($start != null) $qry .= " LIMIT ?,?";
        return $this->db->query($qry,func_get_args());
    }
    
    推荐文章