mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 04:37:42 +08:00
renamed indexBy to be index.
This commit is contained in:
@ -74,21 +74,21 @@ class ActiveFinder extends \yii\base\Object
|
||||
$rows = $command->queryAll();
|
||||
$records = array();
|
||||
if ($query->asArray) {
|
||||
if ($query->indexBy === null) {
|
||||
if ($query->index === null) {
|
||||
return $rows;
|
||||
}
|
||||
foreach ($rows as $row) {
|
||||
$records[$row[$query->indexBy]] = $row;
|
||||
$records[$row[$query->index]] = $row;
|
||||
}
|
||||
} else {
|
||||
$class = $query->modelClass;
|
||||
if ($query->indexBy === null) {
|
||||
if ($query->index === null) {
|
||||
foreach ($rows as $row) {
|
||||
$records[] = $class::create($row);
|
||||
}
|
||||
} else {
|
||||
foreach ($rows as $row) {
|
||||
$records[$row[$query->indexBy]] = $class::create($row);
|
||||
$records[$row[$query->index]] = $class::create($row);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -125,10 +125,10 @@ class ActiveFinder extends \yii\base\Object
|
||||
$joinTree->createRecord($row);
|
||||
}
|
||||
|
||||
if ($query->indexBy !== null) {
|
||||
if ($query->index !== null) {
|
||||
$records = array();
|
||||
foreach ($joinTree->records as $record) {
|
||||
$records[$record[$query->indexBy]] = $record;
|
||||
$records[$record[$query->index]] = $record;
|
||||
}
|
||||
return $records;
|
||||
} else {
|
||||
|
||||
@ -524,8 +524,8 @@ abstract class ActiveRecord extends Model
|
||||
public function addRelatedRecord($relation, $record)
|
||||
{
|
||||
if ($relation->hasMany) {
|
||||
if ($relation->indexBy !== null) {
|
||||
$this->_related[$relation->name][$record->{$relation->indexBy}] = $record;
|
||||
if ($relation->index !== null) {
|
||||
$this->_related[$relation->name][$record->{$relation->index}] = $record;
|
||||
} else {
|
||||
$this->_related[$relation->name][] = $record;
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ class BaseActiveQuery extends BaseQuery
|
||||
* @var string the name of the column that the result should be indexed by.
|
||||
* This is only useful when the query result is returned as an array.
|
||||
*/
|
||||
public $indexBy;
|
||||
public $index;
|
||||
/**
|
||||
* @var boolean whether to return each record as an array. If false (default), an object
|
||||
* of [[modelClass]] will be created to represent each record.
|
||||
@ -61,9 +61,9 @@ class BaseActiveQuery extends BaseQuery
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function indexBy($column)
|
||||
public function index($column)
|
||||
{
|
||||
$this->indexBy = $column;
|
||||
$this->index = $column;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
@ -111,8 +111,8 @@ class JoinElement extends \yii\base\Object
|
||||
continue;
|
||||
}
|
||||
if ($child->query->hasMany) {
|
||||
if ($child->query->indexBy !== null) {
|
||||
$hash = $childRecord[$child->query->indexBy];
|
||||
if ($child->query->index !== null) {
|
||||
$hash = $childRecord[$child->query->index];
|
||||
} else {
|
||||
$hash = serialize($childRecord->getPrimaryKey());
|
||||
}
|
||||
|
||||
@ -217,8 +217,8 @@ class ActiveRecordTest extends \yiiunit\MysqlTestCase
|
||||
$customers = Customer::find()->order('id')->asArray()->all();
|
||||
$this->assertEquals('user2', $customers[1]['name']);
|
||||
|
||||
// indexBy
|
||||
$customers = Customer::find()->order('id')->indexBy('name')->all();
|
||||
// index
|
||||
$customers = Customer::find()->order('id')->index('name')->all();
|
||||
$this->assertEquals(2, $customers['user2']['id']);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user