Codeigniter - 创建自己的帮助器

时间:2012-03-06 08:49:53

标签: php codeigniter

我尝试创建自己的帮助器。 首先,我创建一个名为HelperModelBase的文件。

这是一个抽象类。

abstract class Pasaj_Model_Base {

    public $table_name;
    public $table_alias;
    public $class_name;
    public $lastSql;

    public function __construct() {
        $this->class_name = get_class($this);
        $this->table_name = strtolower($this->class_name);
        $this->table_name = str_replace('_dbview', '', $this->table_name);
    }

并创建一个名为select

的方法
public function select($where = null, $order = null, $limit = null, $columns = '*') {
        if (!$columns)
            $this->db->select('*');
        elseif (is_array($columns)) {
            $columns = implode(',', $columns);
            $this->db->select($columns);
        }



}

如上所示,我做了一个简单的选择操作但是,我想做的是我添加一个或多个操作。

例如,为了做到这一点,请按顺序排序。我将此添加到我的方法中:

if($where)

问题从这里开始,因为codeigniter有一个特殊的代码来处理操作的位置。

$this->db->where();

我该怎么做?我怎么能在那里坐下来

$this->db->select();

谢谢。

最后我来到这里。

public function select($where = null, $order = null, $limit = null, $columns = '*') {
        if (!$columns)
            $this->db->select('*');
        elseif (is_array($columns)) {
            $columns = implode(',', $columns);
            $this->db->select($columns);
        }

        if($where) 
            $this->db->where($where);
        if($order)
            $this->db->order_by($order);
        if($limit)
            $this->db->limit($limit);

        $query = $this->db->get();

        return $query;
    }

我会注意到参数的语法。以上代码可以运行吗?

1 个答案:

答案 0 :(得分:1)

我建议你看看

CodeIgniter User Guide : Models

使用CodeIgniter,对数据库的调用是在模型中进行的,而不是在帮助程序中。

然后,如果您的$where是一个关联数组(事实上如果我已经很好地阅读了您的代码),您可以执行foreach循环来分配where子句和值