protected function onlyCustomer($query, $request)
 {
     if (isset($request['onlyCustomer'])) {
         $modelOrder = \Simple\Factory::model('order', 'O');
         $queryJoin = \Simple\Factory::queryJoin($modelUser, $modelOrder);
         $query->join('left', $queryJoin);
         $query->where($modelOrder->field($modelOrder->pk()), 'NULL', 'IS NOT');
     }
 }
 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());
 }
Exemple #3
0
 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);
         }
     }
 }