CBaseActiveRelation
鍖 | system.db.ar |
---|---|
缁ф壙 | class CBaseActiveRelation » CComponent |
瀛愮被 | CActiveRelation, CStatRelation |
鐗堟湰 | $Id: CActiveRecord.php 3533 2012-01-08 22:07:55Z mdomba $ |
婧愮爜 | framework/db/ar/CActiveRecord.php |
CBaseActiveRelation鏄墍鏈夋椿鍔ㄥ叧绯荤被鐨勫熀绫汇
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
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 |
name | string | 鐩稿叧瀵硅薄鐨勫悕瀛 | CBaseActiveRelation |
order | string | ORDER BY 瀛愬彞銆備负CActiveRelation瀛愮被锛 鍦ㄦ灞炴т腑寮曠敤鐨勫垪鍚嶇О搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔夈 | CBaseActiveRelation |
params | array | 鏉′欢涓殑绾︽潫鏁版嵁銆 閿悕鏄弬鏁扮殑鍗犱綅绗﹀悕瀛楋紝鍊兼槸鍙傛暟鍊笺 | CBaseActiveRelation |
select | mixed | 瑕佹煡璇㈢殑瀛楁鍚嶅瓧銆傦紙鏁扮粍鎴栬呮槸鍚嶅瓧浠ラ楀彿鍒嗛殧鐨勫瓧绗︿覆锛夈 涓嶈杞箟鎴栬呮槸娣诲姞鍓嶇紑鍒拌繖涓瓧娈靛悕瀛楋紝闄ら潪瀹冧滑闇瑕佸湪琛ㄨ揪寮忛噷闈㈢敤鍒般 杩欑鎯呭喌涓嬶紝浣犲簲璇ヤ互鈥榬elationName鈥欎綔涓哄瓧娈靛墠缂銆 | CBaseActiveRelation |
鍏叡鏂规硶
灞炴ц缁
className
灞炴
public string $className;
鐩稿叧鐨勬椿鍔ㄨ褰曠被鐨勫悕瀛
condition
灞炴
public string $condition;
WHERE 瀛愬彞銆傚CActiveRelation杩欎釜缁ф壙绫, 鍏宠仈鍒版潯浠堕噷闈㈢殑瀛楁鍚嶅瓧搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔夈
foreignKey
灞炴
public mixed $foreignKey;
鍏崇郴涓殑澶栭敭
group
灞炴
public string $group;
GROUP BY 瀛愬彞銆傚CActiveRelation杩欎釜缁ф壙绫, 鍏宠仈鍒版潯浠堕噷闈㈢殑瀛楁鍚嶅瓧搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔.
having
灞炴
public string $having;
HAVING 瀛愬彞銆備负CActiveRelation瀛愮被锛 鍦ㄦ灞炴т腑寮曠敤鐨勫垪鍚嶇О搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔夈
join
灞炴
锛堝彲鐢ㄨ嚜 v1.1.3锛
public string $join;
鎬庢牱璺熷叾瀹冩暟鎹〃鍏宠仈銆傝繖涓窡鍦 SQL 璇彞涓 JOIN 鏉℃鐩稿悓銆
姣斿锛'LEFT JOIN users ON users.id=authorID'
銆
name
灞炴
public string $name;
鐩稿叧瀵硅薄鐨勫悕瀛
order
灞炴
public string $order;
ORDER BY 瀛愬彞銆備负CActiveRelation瀛愮被锛 鍦ㄦ灞炴т腑寮曠敤鐨勫垪鍚嶇О搴旇浠ュ墠缂 'relationName' 鏉ラ槻姝㈡涔夈
params
灞炴
public array $params;
鏉′欢涓殑绾︽潫鏁版嵁銆 閿悕鏄弬鏁扮殑鍗犱綅绗﹀悕瀛楋紝鍊兼槸鍙傛暟鍊笺
select
灞炴
public mixed $select;
瑕佹煡璇㈢殑瀛楁鍚嶅瓧銆傦紙鏁扮粍鎴栬呮槸鍚嶅瓧浠ラ楀彿鍒嗛殧鐨勫瓧绗︿覆锛夈 涓嶈杞箟鎴栬呮槸娣诲姞鍓嶇紑鍒拌繖涓瓧娈靛悕瀛楋紝闄ら潪瀹冧滑闇瑕佸湪琛ㄨ揪寮忛噷闈㈢敤鍒般 杩欑鎯呭喌涓嬶紝浣犲簲璇ヤ互鈥榬elationName鈥欎綔涓哄瓧娈靛墠缂銆
鏂规硶璇︾粏
__construct()
鏂规硶
public void __construct(string $name, string $className, string $foreignKey, array $options=array (
))
| ||
$name | string | 鍏崇郴鐨勫悕绉 |
$className | string | 鐩稿叧娲诲姩璁板綍绫荤殑鍚嶇О |
$foreignKey | string | 杩欑鍏崇郴鐨勫閿 |
$options | array | 闄勫姞閫夐」锛坣ame=>value锛夛紝閿繀椤绘槸杩欎釜绫荤殑灞炴у悕銆 |
婧愮爜锛 framework/db/ar/CActiveRecord.php#1926 (鏄剧ず)
public function __construct($name,$className,$foreignKey,$options=array())
{
$this->name=$name;
$this->className=$className;
$this->foreignKey=$foreignKey;
foreach($options as $name=>$value)
$this->$name=$value;
}
鏋勯犲嚱鏁般
mergeWith()
鏂规硶
public void mergeWith(array $criteria, boolean $fromScope=false)
| ||
$criteria | array | 鍔ㄦ佹寚瀹氱殑鏉′欢 |
$fromScope | boolean | 鏄惁姝ゆ潯浠惰浠庤寖鍥村悎骞 |
婧愮爜锛 framework/db/ar/CActiveRecord.php#1940 (鏄剧ず)
public function mergeWith($criteria,$fromScope=false)
{
if($criteria instanceof CDbCriteria)
$criteria=$criteria->toArray();
if(isset($criteria['select']) && $this->select!==$criteria['select'])
{
if($this->select==='*')
$this->select=$criteria['select'];
else if($criteria['select']!=='*')
{
$select1=is_string($this->select)?preg_split('/\s*,\s*/',trim($this->select),-1,PREG_SPLIT_NO_EMPTY):$this->select;
$select2=is_string($criteria['select'])?preg_split('/\s*,\s*/',trim($criteria['select']),-1,PREG_SPLIT_NO_EMPTY):$criteria['select'];
$this->select=array_merge($select1,array_diff($select2,$select1));
}
}
if(isset($criteria['condition']) && $this->condition!==$criteria['condition'])
{
if($this->condition==='')
$this->condition=$criteria['condition'];
else if($criteria['condition']!=='')
$this->condition="({$this->condition}) AND ({$criteria['condition']})";
}
if(isset($criteria['params']) && $this->params!==$criteria['params'])
$this->params=array_merge($this->params,$criteria['params']);
if(isset($criteria['order']) && $this->order!==$criteria['order'])
{
if($this->order==='')
$this->order=$criteria['order'];
else if($criteria['order']!=='')
$this->order=$criteria['order'].', '.$this->order;
}
if(isset($criteria['group']) && $this->group!==$criteria['group'])
{
if($this->group==='')
$this->group=$criteria['group'];
else if($criteria['group']!=='')
$this->group.=', '.$criteria['group'];
}
if(isset($criteria['join']) && $this->join!==$criteria['join'])
{
if($this->join==='')
$this->join=$criteria['join'];
else if($criteria['join']!=='')
$this->join.=' '.$criteria['join'];
}
if(isset($criteria['having']) && $this->having!==$criteria['having'])
{
if($this->having==='')
$this->having=$criteria['having'];
else if($criteria['having']!=='')
$this->having="({$this->having}) AND ({$criteria['having']})";
}
}
灏嗕竴涓姩鎬佹寚瀹氱殑鏉′欢鍚堝苟鍒拌繖涓叧绯汇