Пример #1
0
 /**
  * @param string|array|callable $name
  * @param string $operator
  * @param string $value
  * @return static
  */
 public function orWhere($name, $operator = null, $value = null)
 {
     if (!isset($this->where)) {
         $this->where = new WhereExpression();
     }
     $this->where->orWhere($name, $operator, $value);
     return $this;
 }
Пример #2
0
 public function testClosure()
 {
     $query = new WhereExpression();
     $query->where(function (LogicalExpression $query) {
         $query->where('foo', 'inner foo string');
         $query->orWhere('bar', 'inner bar string');
         return $query;
     })->where('other', '<', 30);
     static::assertEquals('WHERE (`foo` = ? OR `bar` = ?) AND `other` < ?', $query->toSql());
     static::assertEquals(['inner foo string', 'inner bar string', 30], $query->getBindings());
     $query = new WhereExpression();
     $query->where(function (LogicalExpression $query) {
         $query->where('foo', 'inner foo string');
         $query->orWhere(function (LogicalExpression $query) {
             $query->orWhere('bar1', 'inner bar1 string');
             $query->orWhere('bar2', 'inner bar2 string');
         });
         return $query;
     })->where('other', '<', 30);
     static::assertEquals('WHERE (`foo` = ? OR (`bar1` = ? OR `bar2` = ?)) AND `other` < ?', $query->toSql());
     static::assertEquals(['inner foo string', 'inner bar1 string', 'inner bar2 string', 30], $query->getBindings());
 }