You can also extend Kohana_ORM with ORM db_pending:
class ORM extends Kohana_ORM { public function union($table, $all = TRUE) { // Add pending database call which is executed after query type is determined $this->_db_pending[] = array( 'name' => 'union', 'args' => array($table, $all), ); return $this; } }
Using:
ORM::factory('MyModel') ->union(DB::select(DB::expr("'RP' id, 'Pasantías' name, 'Pasantías' short_name, 'R' parent_id, null data"))) ->union(DB::select(DB::expr("'RC' id, 'Capacitación' name, 'Capacitación' short_name, 'R' parent_id, null data"))) ->join(['catalogo', 'p'])->on('catalogo.parent_id', '=', 'p.id') ->where('p.parent_id', 'is', NULL) ->where('catalogo.id', 'not in', ['RV', 'RPA', 'RPT']);
source share