Browse Source

Refactored hasMany and hasOne so that they support cross-DBMS relationship.

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
a07facf434
  1. 8
      framework/yii/db/ActiveRecord.php
  2. 2
      framework/yii/redis/ActiveRecord.php

8
framework/yii/db/ActiveRecord.php

@ -475,7 +475,8 @@ class ActiveRecord extends Model
*/ */
public function hasOne($class, $link) public function hasOne($class, $link)
{ {
return $this->createActiveRelation([ /** @var ActiveRecord $class */
return $class::createActiveRelation([
'modelClass' => $class, 'modelClass' => $class,
'primaryModel' => $this, 'primaryModel' => $this,
'link' => $link, 'link' => $link,
@ -513,7 +514,8 @@ class ActiveRecord extends Model
*/ */
public function hasMany($class, $link) public function hasMany($class, $link)
{ {
return $this->createActiveRelation([ /** @var ActiveRecord $class */
return $class::createActiveRelation([
'modelClass' => $class, 'modelClass' => $class,
'primaryModel' => $this, 'primaryModel' => $this,
'link' => $link, 'link' => $link,
@ -528,7 +530,7 @@ class ActiveRecord extends Model
* @param array $config the configuration passed to the ActiveRelation class. * @param array $config the configuration passed to the ActiveRelation class.
* @return ActiveRelation the newly created [[ActiveRelation]] instance. * @return ActiveRelation the newly created [[ActiveRelation]] instance.
*/ */
protected function createActiveRelation($config = []) public static function createActiveRelation($config = [])
{ {
return new ActiveRelation($config); return new ActiveRelation($config);
} }

2
framework/yii/redis/ActiveRecord.php

@ -58,7 +58,7 @@ class ActiveRecord extends \yii\db\ActiveRecord
/** /**
* @inheritDoc * @inheritDoc
*/ */
protected function createActiveRelation($config = []) public static function createActiveRelation($config = [])
{ {
return new ActiveRelation($config); return new ActiveRelation($config);
} }

Loading…
Cancel
Save