public function interprete($request) { $modelUser = \Simple\Factory::model('user', 'U'); $query = \Simple\Factory::query($modelUser); $query->select($modelUser->field('*')); $this->onlyCustomer($query, $request); $this->idUser($query, $request); return $query; }
public function testQueryJoinWithArray() { $modelA = \Simple\Factory::model('superA', 'A'); $modelB = \Simple\Factory::model('hiperB', 'B'); $queryJoin = \Simple\Factory::queryJoin($modelA, array('hiperB', 'B')); $queryJoin->where($modelB->field('name'), 'john'); $query = \Simple\Factory::query(array('superA', 'A')); $query->select($modelA->field('*')); $query->join('left', $queryJoin); $this->assertEquals('SELECT A.* FROM superA AS A LEFT JOIN hiperB AS B ON A.idSuperA = B.idSuperA AND B.name = (?)', $query->sqlSelect()); }
protected function parseInclude($req, $query) { foreach (['left', 'right'] as $joinType) { $includes = (array) $req->getParam($joinType); foreach ($includes as $table => $include) { if (empty($include)) { $model = \Simple\Factory::model($table); $query->join($joinType, $model); continue; } $queryJoin = \Simple\Factory::query($table); $queryJoin->equal($query->from->field($include), $queryJoin->from->field($include)); $query->join($joinType, $queryJoin); } } }