本文整理汇总了PHP中Builder::whereRaw方法的典型用法代码示例。如果您正苦于以下问题:PHP Builder::whereRaw方法的具体用法?PHP Builder::whereRaw怎么用?PHP Builder::whereRaw使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Builder
的用法示例。
在下文中一共展示了Builder::whereRaw方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doColumnSearch
/**
* Perform column search
*
* @return void
*/
public function doColumnSearch()
{
$input = $this->input;
$columns = $input['columns'];
// if older version, set the column name to query's fields
// or if new version but does not use mData support
if (!$this->new_version or !$this->mDataSupport and $this->new_version) {
for ($i = 0; $i < count($columns); $i++) {
if (!isset($this->columns[$i])) {
continue;
}
$columns[$i]['name'] = $this->columns[$i];
if (stripos($columns[$i]['name'], ' AS ') !== false or $columns[$i]['name'] instanceof Expression) {
$columns[$i]['name'] = '';
$columns[$i]['searchable'] = false;
$columns[$i]['orderable'] = false;
}
}
}
for ($i = 0, $c = count($columns); $i < $c; $i++) {
if ($columns[$i]['searchable'] == "true" and !empty($columns[$i]['search']['value']) and !empty($columns[$i]['name'])) {
$column = $columns[$i]['name'];
$keyword = $this->setupKeyword($columns[$i]['search']['value']);
// wrap column possibly allow reserved words to be used as column
$column = $this->wrapColumn($column);
if ($this->isCaseInsensitive()) {
$this->query->whereRaw('LOWER(' . $column . ') LIKE ?', [strtolower($keyword)]);
} else {
$col = strstr($column, '(') ? $this->connection->raw($column) : $column;
$this->query->where($col, 'LIKE', $keyword);
}
}
}
}
示例2: doColumnSearch
/**
* Perform column search
*
* @param array $columns
* @return void
*/
public function doColumnSearch(array $columns)
{
for ($i = 0, $c = count($columns); $i < $c; $i++) {
if ($columns[$i]['searchable'] == "true" and !empty($columns[$i]['search']['value']) and !empty($columns[$i]['name'])) {
$column = $columns[$i]['name'];
$keyword = $this->setupKeyword($columns[$i]['search']['value']);
// wrap column possibly allow reserved words to be used as column
$column = $this->wrapColumn($column);
if ($this->isCaseInsensitive()) {
$this->query->whereRaw('LOWER(' . $column . ') LIKE ?', [strtolower($keyword)]);
} else {
$col = strstr($column, '(') ? $this->connection->raw($column) : $column;
$this->query->where($col, 'LIKE', $keyword);
}
}
}
}
示例3: applyScopeToQuery
/**
* Applies a filter scope constraints to a DB query.
* @param string $scope
* @param Builder $query
* @return Builder
*/
public function applyScopeToQuery($scope, $query)
{
if (is_string($scope)) {
$scope = $this->getScope($scope);
}
if (!$scope->value) {
return;
}
$value = is_array($scope->value) ? array_keys($scope->value) : $scope->value;
/*
* Condition
*/
if ($scopeConditions = $scope->conditions) {
if (is_array($value)) {
$filtered = implode(',', array_build($value, function ($key, $_value) {
return [$key, Db::getPdo()->quote($_value)];
}));
} else {
$filtered = Db::getPdo()->quote($value);
}
$query->whereRaw(strtr($scopeConditions, [':filtered' => $filtered]));
}
/*
* Scope
*/
if ($scopeMethod = $scope->scope) {
$query->{$scopeMethod}($value);
}
return $query;
}
示例4: applyScopeToQuery
/**
* Applies a filter scope constraints to a DB query.
* @param string $scope
* @param Builder $query
* @return Builder
*/
public function applyScopeToQuery($scope, $query)
{
if (is_string($scope)) {
$scope = $this->getScope($scope);
}
if (!$scope->value) {
return;
}
switch ($scope->type) {
case 'date':
if ($scope->value instanceof Carbon) {
$value = $scope->value;
/*
* Condition
*/
if ($scopeConditions = $scope->conditions) {
$query->whereRaw(DbDongle::parse(strtr($scopeConditions, [':filtered' => $value->format('Y-m-d'), ':after' => $value->format('Y-m-d H:i:s'), ':before' => $value->copy()->addDay()->addMinutes(-1)->format('Y-m-d H:i:s')])));
} elseif ($scopeMethod = $scope->scope) {
$query->{$scopeMethod}($value);
}
}
break;
case 'daterange':
if (is_array($scope->value) && count($scope->value) > 1) {
list($after, $before) = array_values($scope->value);
if ($after && $after instanceof Carbon && $before && $before instanceof Carbon) {
/*
* Condition
*/
if ($scopeConditions = $scope->conditions) {
$query->whereRaw(DbDongle::parse(strtr($scopeConditions, [':afterDate' => $after->format('Y-m-d'), ':after' => $after->format('Y-m-d H:i:s'), ':beforeDate' => $before->format('Y-m-d'), ':before' => $before->format('Y-m-d H:i:s')])));
} elseif ($scopeMethod = $scope->scope) {
$query->{$scopeMethod}($after, $before);
}
}
}
break;
default:
$value = is_array($scope->value) ? array_keys($scope->value) : $scope->value;
/*
* Condition
*/
if ($scopeConditions = $scope->conditions) {
/*
* Switch scope: multiple conditions, value either 1 or 2
*/
if (is_array($scopeConditions)) {
$conditionNum = is_array($value) ? 0 : $value - 1;
list($scopeConditions) = array_slice($scopeConditions, $conditionNum);
}
if (is_array($value)) {
$filtered = implode(',', array_build($value, function ($key, $_value) {
return [$key, Db::getPdo()->quote($_value)];
}));
} else {
$filtered = Db::getPdo()->quote($value);
}
$query->whereRaw(DbDongle::parse(strtr($scopeConditions, [':filtered' => $filtered])));
} elseif ($scopeMethod = $scope->scope) {
$query->{$scopeMethod}($value);
}
break;
}
return $query;
}