Хотите использовать конструктор запросов в Kohana3 ORM

Я хочу использовать методы построителя запросов в Kohana 3 ORM, возможно ли это сделать? И я хочу, чтобы некоторые из моих функций были внутри модели на основе ORM Kohana, например, если я делаю что-то в функции, и она принадлежит какой-то модели, которая уже является моделью на основе ORM, тогда я хочу написать эту функцию в ней, и возможно ли, что Я могу использовать Query Builder или ORM внутри этих методов или классов? как

class Abc_Model extends ORM{
    function setAbc($a){
          DB::insert($table,$a);
    }

    function getSomething(){
         $x=$this->x->find_all();
         return $x;
    }


 }

Итак, могу ли я делать такие вещи в ORM и как и будет ли это хорошим подходом?


person Hafiz    schedule 27.02.2011    source источник


Ответы (1)


Благодаря __call() вы можете использовать методы построителя запросов к объектам ORM где угодно.

So:

// inside the model
public function find_all_specific($val)
{
    return $this->where('specific','=',$val)->find_all();
}

Есть довольно много хороших документов по использованию Ko3 ORM, вы можете начать с руководства пользователя:

http://kohanaframework.org/3.1/guide/orm/using (переключиться на 3.0 если вы используете 3.0.x)

person Kemo    schedule 28.02.2011
comment
так что я могу использовать свой метод получения чего-то вроде этого в контроллере: code $info=$model-›find_all_specific($val); code - person Hafiz; 28.02.2011
comment
точно, и вы также можете сказать $info = $model-›where... где угодно - person Kemo; 28.02.2011
comment
Обратите внимание, что если вы хотите установить имя таблицы (требуется для метода from()) или объект БД (для метода execute()), вы должны использовать $this->_table_name и $this->_db - person biakaveron; 01.03.2011