YII関連テーブル照会

2215 ワード

ARモデルではrelations()メソッドで関係を確立できる
class B
public function relations() { return array( 'a'=>array(self::BELONGS_TO, 'A', 'id') ); }

こうして一対一の関係が築かれた.
$b = B::model()->find($criteria);

$a = $b->a;

第2のステップは、lazyFinderを使用して構造に$aを割り当てることです.
4つの関係:
関係
定義#テイギ#

BELONGS_TO
AとBの関係が一対多であれば、BはAに属する.
PostはUserに属する
HAS_MANY
AとBの間の関係は1対多で、それではAは複数のBがあります
Userには複数のPostがあります
HAS_ONE
これはHAS_MANYの1種の特殊な情況、Aはせいぜい1つのBがあります
Userには最大1つのプロファイルがあります
MANY_MANY
これは多対多の場合、ARでは多対多をBELONGS_TOとHAS_MANYの組み合わせで説明
PostとCategory
ARではCActiveRecordクラスのrelations()メソッドを書き換えることで関係を明らかにする.この方法は関係構成の配列を返します.1つの配列は、次の形式で個別の関係を表します.
'VarName'=>array('RelationType','ClassName','ForeignKey', ...additional options)
 
 
Var Name
関係名
Relation Type
4つの関係:self::BELONGS_TO, self::HAS_ONE, self::HAS_MANY, self::MANY_MANY
Class Name
現在のARクラスに関連付けられるARクラス名を表します
Foreign Key
関係を実現する外部キー、すなわちカラム名
refer:http://blog.csdn.net/yjj1s/article/details/6885276