我尝试创建自己的帮助器。 首先,我创建一个名为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;
}
我会注意到参数的语法。以上代码可以运行吗?
答案 0 :(得分:1)
我建议你看看
CodeIgniter User Guide : Models
使用CodeIgniter,对数据库的调用是在模型中进行的,而不是在帮助程序中。
然后,如果您的$where
是一个关联数组(事实上如果我已经很好地阅读了您的代码),您可以执行foreach
循环来分配where
子句和值