mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 20:52:48 +08:00
增加Expression类及相关方法
This commit is contained in:
@@ -800,6 +800,24 @@ class Query
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 表达式方式指定查询字段
|
||||
* @access public
|
||||
* @param string $field 字段名
|
||||
* @param array $bind 参数绑定
|
||||
* @return $this
|
||||
*/
|
||||
public function fieldRaw($field, array $bind = [])
|
||||
{
|
||||
$this->options['field'][] = $this->raw($field);
|
||||
|
||||
if ($bind) {
|
||||
$this->bind($bind);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置数据
|
||||
* @access public
|
||||
@@ -862,6 +880,17 @@ class Query
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用表达式设置数据
|
||||
* @access public
|
||||
* @param mixed $value 表达式
|
||||
* @return Expression
|
||||
*/
|
||||
public function raw($value)
|
||||
{
|
||||
return new Expression($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定JOIN查询字段
|
||||
* @access public
|
||||
@@ -975,6 +1004,37 @@ class Query
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定表达式查询条件
|
||||
* @access public
|
||||
* @param string $where 查询条件
|
||||
* @param array $bind 参数绑定
|
||||
* @param string $logic 查询逻辑 and or xor
|
||||
* @return $this
|
||||
*/
|
||||
public function whereRaw($where, $bind = [], $logic = 'AND')
|
||||
{
|
||||
$this->options['where'][$logic][] = $this->raw($where);
|
||||
|
||||
if ($bind) {
|
||||
$this->bind($bind);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定表达式查询条件 OR
|
||||
* @access public
|
||||
* @param string $where 查询条件
|
||||
* @param array $bind 参数绑定
|
||||
* @return $this
|
||||
*/
|
||||
public function whereOrRaw($where, $bind = [])
|
||||
{
|
||||
return $this->whereRaw($where, $bind, 'OR');
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定Null查询条件
|
||||
* @access public
|
||||
@@ -1163,7 +1223,9 @@ class Query
|
||||
$field = $this->options['via'] . '.' . $field;
|
||||
}
|
||||
|
||||
if ($strict) {
|
||||
if ($field instanceof Expression) {
|
||||
return $this->whereRaw($field, is_array($op) ? $op : []);
|
||||
} elseif ($strict) {
|
||||
// 使用严格模式查询
|
||||
$where[$field] = [$op, $condition];
|
||||
|
||||
@@ -1451,6 +1513,24 @@ class Query
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 表达式方式指定Field排序
|
||||
* @access public
|
||||
* @param string $field 排序字段
|
||||
* @param array $bind 参数绑定
|
||||
* @return $this
|
||||
*/
|
||||
public function orderRaw($field, array $bind = [])
|
||||
{
|
||||
$this->options['order'][] = $this->raw($field);
|
||||
|
||||
if ($bind) {
|
||||
$this->bind($bind);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询缓存
|
||||
* @access public
|
||||
|
||||
Reference in New Issue
Block a user