/** * @param QueryBuilderHandler $queryBuilder * @param $event * @return mixed */ public function fireEvents($queryBuilder, $event) { $statements = $queryBuilder->getStatements(); $tables = isset($statements['tables']) ? $statements['tables'] : array(); // Events added with :any will be fired in case of any table, // we are adding :any as a fake table at the beginning. array_unshift($tables, ':any'); // Fire all events foreach ($tables as $table) { // Fire before events for :any table if ($action = $this->getEvent($event, $table)) { // Make an event id, with event type and table $eventId = $event . $table; // Fire event $handlerParams = func_get_args(); unset($handlerParams[1]); // we do not need $event // Add to fired list $this->firedEvents[] = $eventId; $result = call_user_func_array($action, $handlerParams); if (!is_null($result)) { return $result; } } } }
public function testPaginatorGenerateWithPixieAdapter() { $records = $this->qb->table('sample')->select('t_value'); $expected = $this->qb->table('sample')->select('t_value')->limit(10)->offset(10)->get(); $paginatorClass = new Paginator(); $paginator = $paginatorClass->page(2)->perPage(10)->make($records); $this->assertEquals(100, $paginator->total(), 'Failed asserting pagination total.'); $this->assertEquals($expected, $paginator->records(), 'Failed asserting pagination records.'); }
/** * @param QueryBuilderHandler $queryBuilder * @param null $alias * * @return Raw */ public function subQuery(QueryBuilderHandler $queryBuilder, $alias = null) { $sql = '(' . $queryBuilder->getQuery()->getRawSql() . ')'; if ($alias) { $sql = $sql . ' as ' . $alias; } return $queryBuilder->raw($sql); }
public function subQuery(Model $model, $alias = null) { return $this->query->subQuery($model->getQuery(), $alias); }
public function findAllDynamic($fieldName, $value) { $results = parent::findAll($fieldName, $value); return $this->convertResults($results); }
/** * @expectedException \Pixie\Exception * @expectedExceptionCode 3 */ public function testTableNotSpecifiedException() { $this->builder->where('a', 'b')->get(); }