Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
86c93cf4
Commit
86c93cf4
authored
Sep 24, 2013
by
Carsten Brandt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
diff between db\ActiveQuery and redis\ActiveQuery
parent
142ea1f9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
26 deletions
+48
-26
ActiveQuery.php
framework/yii/redis/ActiveQuery.php
+48
-26
No files found.
framework/yii/redis/ActiveQuery.php
View file @
86c93cf4
...
...
@@ -12,10 +12,10 @@ namespace yii\redis;
use
yii\base\NotSupportedException
;
/**
* ActiveQuery represents a
DB
query associated with an Active Record class.
* ActiveQuery represents a query associated with an Active Record class.
*
* ActiveQuery instances are usually created by [[
yii\db\redis\
ActiveRecord::find()]]
* and [[
yii\db\redis\
ActiveRecord::count()]].
* ActiveQuery instances are usually created by [[ActiveRecord::find()]]
* and [[ActiveRecord::count()]].
*
* ActiveQuery mainly provides the following methods to retrieve the query results:
*
...
...
@@ -29,7 +29,7 @@ use yii\base\NotSupportedException;
* - [[scalar()]]: returns the value of the first column in the first row of the query result.
* - [[exists()]]: returns a value indicating whether the query result has data or not.
*
* You can use query methods, such as [[
limit()]],
[[orderBy()]] to customize the query options.
* You can use query methods, such as [[
where()]], [[limit()]] and
[[orderBy()]] to customize the query options.
*
* ActiveQuery also provides the following additional query options:
*
...
...
@@ -49,6 +49,17 @@ use yii\base\NotSupportedException;
class
ActiveQuery
extends
\yii\base\Component
{
/**
* Sort ascending
* @see orderBy
*/
const
SORT_ASC
=
false
;
/**
* Sort descending
* @see orderBy
*/
const
SORT_DESC
=
true
;
/**
* @var string the name of the ActiveRecord class.
*/
public
$modelClass
;
...
...
@@ -57,12 +68,18 @@ class ActiveQuery extends \yii\base\Component
*/
public
$with
;
/**
* @var string|callable $column the name of the column by which the query results should be indexed by.
* This can also be a callable (e.g. anonymous function) that returns the index value based on the given
* row or model data. For more details, see [[indexBy()]].
*/
public
$indexBy
;
/**
* @var boolean whether to return each record as an array. If false (default), an object
* of [[modelClass]] will be created to represent each record.
*/
public
$asArray
;
/**
* @var array
query condition. This refers to the WHERE clause in a SQL statement
.
* @var array
the query condition
.
* @see where()
*/
public
$where
;
...
...
@@ -79,15 +96,10 @@ class ActiveQuery extends \yii\base\Component
/**
* @var array how to sort the query results. This is used to construct the ORDER BY clause in a SQL statement.
* The array keys are the columns to be sorted by, and the array values are the corresponding sort directions which
* can be either [[
Query::SORT_ASC]] or [[
Query::SORT_DESC]]. The array may also contain [[Expression]] objects.
* can be either [[
ActiveQuery::SORT_ASC]] or [[Active
Query::SORT_DESC]]. The array may also contain [[Expression]] objects.
* If that is the case, the expressions will be converted into strings without any change.
*/
public
$orderBy
;
/**
* @var string the name of the column by which query results should be indexed by.
* This is only used when the query result is returned as an array when calling [[all()]].
*/
public
$indexBy
;
/**
* PHP magic method.
...
...
@@ -125,8 +137,7 @@ class ActiveQuery extends \yii\base\Component
}
$rows
[]
=
$row
;
}
if
(
$rows
!==
array
())
{
if
(
!
empty
(
$rows
))
{
$models
=
$this
->
createModels
(
$rows
);
if
(
!
empty
(
$this
->
with
))
{
$this
->
populateRelations
(
$models
,
$this
->
with
);
...
...
@@ -155,19 +166,19 @@ class ActiveQuery extends \yii\base\Component
for
(
$i
=
0
;
$i
<
$c
;
)
{
$row
[
$data
[
$i
++
]]
=
$data
[
$i
++
];
}
if
(
!
$this
->
asArray
)
{
if
(
$this
->
asArray
)
{
$model
=
$row
;
}
else
{
/** @var $class ActiveRecord */
$class
=
$this
->
modelClass
;
$model
=
$class
::
create
(
$row
);
if
(
!
empty
(
$this
->
with
))
{
$models
=
array
(
$model
);
$this
->
populateRelations
(
$models
,
$this
->
with
);
$model
=
$models
[
0
];
}
return
$model
;
}
else
{
return
$row
;
}
if
(
!
empty
(
$this
->
with
))
{
$models
=
array
(
$model
);
$this
->
populateRelations
(
$models
,
$this
->
with
);
$model
=
$models
[
0
];
}
return
$model
;
}
/**
...
...
@@ -389,6 +400,8 @@ class ActiveQuery extends \yii\base\Component
return
false
;
}
// TODO: refactor. code below here is all duplicated from yii/db/ActiveQuery and yii/db/Query
/**
* Sets the [[asArray]] property.
* @param boolean $value whether to return the query results in terms of arrays instead of Active Records.
...
...
@@ -512,7 +525,19 @@ class ActiveQuery extends \yii\base\Component
/**
* Sets the [[indexBy]] property.
* @param string $column the name of the column by which the query results should be indexed by.
* @param string|callable $column the name of the column by which the query results should be indexed by.
* This can also be a callable (e.g. anonymous function) that returns the index value based on the given
* row or model data. The signature of the callable should be:
*
* ~~~
* // $model is an AR instance when `asArray` is false,
* // or an array of column values when `asArray` is true.
* function ($model)
* {
* // return the index value corresponding to $model
* }
* ~~~
*
* @return ActiveQuery the query object itself
*/
public
function
indexBy
(
$column
)
...
...
@@ -633,7 +658,6 @@ class ActiveQuery extends \yii\base\Component
return
$this
;
}
// TODO: refactor, it is duplicated from yii/db/ActiveQuery
private
function
createModels
(
$rows
)
{
$models
=
array
();
...
...
@@ -671,7 +695,6 @@ class ActiveQuery extends \yii\base\Component
return
$models
;
}
// TODO: refactor, it is duplicated from yii/db/ActiveQuery
private
function
populateRelations
(
&
$models
,
$with
)
{
$primaryModel
=
new
$this
->
modelClass
;
...
...
@@ -686,7 +709,6 @@ class ActiveQuery extends \yii\base\Component
}
/**
* TODO: refactor, it is duplicated from yii/db/ActiveQuery
* @param ActiveRecord $model
* @param array $with
* @return ActiveRelation[]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment