/** * @param string|array|callable $name * @param string $operator * @param string $value * @return static */ public function andWhere($name, $operator = null, $value = null) { if (!isset($this->where)) { $this->where = new WhereExpression(); } $this->where->andWhere($name, $operator, $value); return $this; }
public function testWhereChaining() { $query = new WhereExpression(); $query->where('foo', 'foo string')->andWhere('bar', '>', 'bar string'); static::assertEquals('WHERE `foo` = ? AND `bar` > ?', $query->toSql()); static::assertEquals(['foo string', 'bar string'], $query->getBindings()); $query = new WhereExpression(); $query->andWhere('foo', 'foo string')->orWhere('bar', '<', 'bar string'); static::assertEquals('WHERE `foo` = ? OR `bar` < ?', $query->toSql()); static::assertEquals(['foo string', 'bar string'], $query->getBindings()); $query = new WhereExpression(); $query->orWhere('foo', 'foo string')->where('bar', 'bar string'); static::assertEquals('WHERE `foo` = ? AND `bar` = ?', $query->toSql()); static::assertEquals(['foo string', 'bar string'], $query->getBindings()); }