Codeigniter - Создание собственного помощника - PullRequest
0 голосов
/ 06 марта 2012

Я пытаюсь создать своего помощника.Сначала я создаю файл с именем 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 Ответ

1 голос
/ 06 марта 2012

Я бы посоветовал вам взглянуть на

Руководство пользователя CodeIgniter: Модели

При использовании CodeIgniter вызовы баз данных выполняются в моделях, а нев помощниках.

Тогда, если ваш $where является ассоциативным массивом (на самом деле, если я хорошо читаю ваш код, это необходимо), вы можете сделать цикл foreach, чтобы назначить предложения where изначения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...