CActiveRelation
鍖 | system.db.ar |
---|---|
缁ф壙 | class CActiveRelation » CBaseActiveRelation » CComponent |
瀛愮被 | CBelongsToRelation, CHasManyRelation, CHasOneRelation |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CActiveRecord.php 3533 2012-01-08 22:07:55Z mdomba $ |
婧愮爜 | framework/db/ar/CActiveRecord.php |
CActiveRelation鏄熀绫伙紝瀹冭〃绀哄甫鍥炵浉鍏冲璞$殑娲诲姩鍏崇郴銆
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
alias | string | 杩欎釜鍏崇郴鎵鎸囩殑琛ㄧ殑鍒悕銆傞粯璁や负null锛 鎰忓懗鐫姝ゅ埆鍚嶅皢鍜屾鍏崇郴鍚嶄竴鏍枫 | CActiveRelation |
className | string | 鐩稿叧鐨勬椿鍔ㄨ褰曠被鐨勫悕瀛 | CBaseActiveRelation |
condition | string | WHERE 瀛愬彞銆傚CActiveRelation杩欎釜缁ф壙绫, 鍏宠仈鍒版潯浠堕噷闈㈢殑瀛楁鍚嶅瓧搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔夈 | CBaseActiveRelation |
foreignKey | mixed | 鍏崇郴涓殑澶栭敭 | CBaseActiveRelation |
group | string | GROUP BY 瀛愬彞銆傚CActiveRelation杩欎釜缁ф壙绫, 鍏宠仈鍒版潯浠堕噷闈㈢殑瀛楁鍚嶅瓧搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔. | CBaseActiveRelation |
having | string | HAVING 瀛愬彞銆備负CActiveRelation瀛愮被锛 鍦ㄦ灞炴т腑寮曠敤鐨勫垪鍚嶇О搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔夈 | CBaseActiveRelation |
join | string | 鎬庢牱璺熷叾瀹冩暟鎹〃鍏宠仈銆傝繖涓窡鍦 SQL 璇彞涓 JOIN 鏉℃鐩稿悓銆
姣斿锛'LEFT JOIN users ON users. |
CBaseActiveRelation |
joinType | string | 杩炴帴绫诲瀷銆傞粯璁ゅ间负鈥楲EFT OUTER JOIN鈥欍 | CActiveRelation |
name | string | 鐩稿叧瀵硅薄鐨勫悕瀛 | CBaseActiveRelation |
on | string | ON 瀛愬彞. | CActiveRelation |
order | string | ORDER BY 瀛愬彞銆備负CActiveRelation瀛愮被锛 鍦ㄦ灞炴т腑寮曠敤鐨勫垪鍚嶇О搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔夈 | CBaseActiveRelation |
params | array | 鏉′欢涓殑绾︽潫鏁版嵁銆 閿悕鏄弬鏁扮殑鍗犱綅绗﹀悕瀛楋紝鍊兼槸鍙傛暟鍊笺 | CBaseActiveRelation |
scopes | mixed | 瑕佸簲鐢ㄧ殑鑼冨洿
鍙互璁剧疆涓轰笅鍒楀间箣涓:
|
CActiveRelation |
select | mixed | 瑕佹煡璇㈢殑瀛楁鍚嶅瓧銆傦紙鏁扮粍鎴栬呮槸鍚嶅瓧浠ラ楀彿鍒嗛殧鐨勫瓧绗︿覆锛夈 涓嶈杞箟鎴栬呮槸娣诲姞鍓嶇紑鍒拌繖涓瓧娈靛悕瀛楋紝闄ら潪瀹冧滑闇瑕佸湪琛ㄨ揪寮忛噷闈㈢敤鍒般 杩欑鎯呭喌涓嬶紝浣犲簲璇ヤ互鈥榬elationName鈥欎綔涓哄瓧娈靛墠缂銆 | CBaseActiveRelation |
together | boolean | 鏄惁搴斿皢姝よ〃涓庝富琛ㄨ仈鎺ャ 褰撹繖涓睘鎬ц缃负false鏃讹紝鍜岃繖涓叧绯诲叧鑱旂殑琛ㄥ皢鍑虹幇鍦 涓涓崟鐙殑JOIN璇彞涓 濡傛灉杩欎釜灞炴ц璁剧疆涓簍rue锛岀浉搴旂殑琛ㄦ绘槸涓昏〃杩炴帴鍦ㄤ竴璧凤紝 涓嶇鏄富琛ㄨ闄愬埗鎴栨病鏈夈 濡傛灉杩欎釜灞炴ф病鏈夎缃紝鐩稿簲鐨勮〃浠呭拰涓昏〃杩炴帴 浠呭綋涓昏〃涓嶈闄愬埗鏃躲 | CActiveRelation |
with | string|array | 鎸囧畾鐩稿叧鐨勫璞″簲璇ヨ鎬ュ垏鐨勫姞杞藉綋杩欎釜鍏宠仈瀵硅薄琚噿鍔犺浇鏃躲 鏇村鍏充簬杩欎釜灞炴х殑淇℃伅锛屽弬瑙CActiveRecord::with()銆 | CActiveRelation |
鍏叡鏂规硶
灞炴ц缁
alias
灞炴
public string $alias;
杩欎釜鍏崇郴鎵鎸囩殑琛ㄧ殑鍒悕銆傞粯璁や负null锛 鎰忓懗鐫姝ゅ埆鍚嶅皢鍜屾鍏崇郴鍚嶄竴鏍枫
joinType
灞炴
public string $joinType;
杩炴帴绫诲瀷銆傞粯璁ゅ间负鈥楲EFT OUTER JOIN鈥欍
on
灞炴
public string $on;
ON 瀛愬彞. 杩欎釜鎸囧畾鐨勬潯浠跺皢琚娇鐢ˋND鎿嶄綔绗﹂檮鍔犲埌杩炴帴鏉′欢銆
scopes
灞炴
锛堝彲鐢ㄨ嚜 v1.1.9锛
public mixed $scopes;
瑕佸簲鐢ㄧ殑鑼冨洿 鍙互璁剧疆涓轰笅鍒楀间箣涓:
- Single scope: 'scopes'=>'scopeName'.
- Multiple scopes: 'scopes'=>array('scopeName1','scopeName2').
together
灞炴
public boolean $together;
鏄惁搴斿皢姝よ〃涓庝富琛ㄨ仈鎺ャ 褰撹繖涓睘鎬ц缃负false鏃讹紝鍜岃繖涓叧绯诲叧鑱旂殑琛ㄥ皢鍑虹幇鍦 涓涓崟鐙殑JOIN璇彞涓 濡傛灉杩欎釜灞炴ц璁剧疆涓簍rue锛岀浉搴旂殑琛ㄦ绘槸涓昏〃杩炴帴鍦ㄤ竴璧凤紝 涓嶇鏄富琛ㄨ闄愬埗鎴栨病鏈夈 濡傛灉杩欎釜灞炴ф病鏈夎缃紝鐩稿簲鐨勮〃浠呭拰涓昏〃杩炴帴 浠呭綋涓昏〃涓嶈闄愬埗鏃躲
with
灞炴
public string|array $with;
鎸囧畾鐩稿叧鐨勫璞″簲璇ヨ鎬ュ垏鐨勫姞杞藉綋杩欎釜鍏宠仈瀵硅薄琚噿鍔犺浇鏃躲 鏇村鍏充簬杩欎釜灞炴х殑淇℃伅锛屽弬瑙CActiveRecord::with()銆
鏂规硶璇︾粏
mergeWith()
鏂规硶
public void mergeWith(array $criteria, boolean $fromScope=false)
| ||
$criteria | array | 鍔ㄦ佹寚瀹氱殑鏉′欢 |
$fromScope | boolean | 鏄惁杩欎釜鏉′欢鑳戒粠鑼冨洿鍚堝苟銆 |
婧愮爜锛 framework/db/ar/CActiveRecord.php#2091 (鏄剧ず)
public function mergeWith($criteria,$fromScope=false)
{
if($criteria instanceof CDbCriteria)
$criteria=$criteria->toArray();
if($fromScope)
{
if(isset($criteria['condition']) && $this->on!==$criteria['condition'])
{
if($this->on==='')
$this->on=$criteria['condition'];
else if($criteria['condition']!=='')
$this->on="({$this->on}) AND ({$criteria['condition']})";
}
unset($criteria['condition']);
}
parent::mergeWith($criteria);
if(isset($criteria['joinType']))
$this->joinType=$criteria['joinType'];
if(isset($criteria['on']) && $this->on!==$criteria['on'])
{
if($this->on==='')
$this->on=$criteria['on'];
else if($criteria['on']!=='')
$this->on="({$this->on}) AND ({$criteria['on']})";
}
if(isset($criteria['with']))
$this->with=$criteria['with'];
if(isset($criteria['alias']))
$this->alias=$criteria['alias'];
if(isset($criteria['together']))
$this->together=$criteria['together'];
}
灏嗕竴涓姩鎬佹寚瀹氱殑鏉′欢鍚堝苟鍒拌繖涓叧绯汇