CDataProvider
| 鍖 | system.web |
|---|---|
| 缁ф壙 | abstract class CDataProvider » CComponent |
| 瀹炵幇 | IDataProvider |
| 瀛愮被 | CActiveDataProvider, CArrayDataProvider, CSqlDataProvider |
| 婧愯嚜 | 1.1 |
| 鐗堟湰 | $Id: CDataProvider.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
| 婧愮爜 | framework/web/CDataProvider.php |
CDataProvider鏄疄鐜IDataProvider鎺ュ彛鐨勫熀绫汇
缁ф壙鐨勭被涓昏瀹炵幇涓変釜鏂规硶锛fetchData锛 fetchKeys鍜calculateTotalItemCount銆
缁ф壙鐨勭被涓昏瀹炵幇涓変釜鏂规硶锛fetchData锛 fetchKeys鍜calculateTotalItemCount銆
鍏叡灞炴
| 灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|---|
| data | array | 杩斿洖褰撳墠鍙敤鐨勬暟鎹」銆 | CDataProvider |
| id | string | 杩斿洖鎵鏈夋暟鎹彁渚涜呯殑鍞竴鏍囪瘑ID銆 | CDataProvider |
| itemCount | integer | 杩斿洖褰撳墠椤甸潰鐨勬暟鎹」鏁扮洰銆 | CDataProvider |
| keys | array | 杩斿洖鐩稿叧鏁版嵁椤圭殑閿 | CDataProvider |
| pagination | CPagination | 杩斿洖pagination瀵硅薄銆 | CDataProvider |
| sort | CSort | 杩斿洖sort瀵硅薄銆 | CDataProvider |
| totalItemCount | integer | 杩斿洖鎵鏈夋暟鎹」鐨勬绘暟銆 | CDataProvider |
鍏叡鏂规硶
| 鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|
| __call() | 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 | CComponent |
| __get() | 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 | CComponent |
| __isset() | 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 | CComponent |
| __set() | 璁剧疆涓涓粍浠剁殑灞炴у笺 | CComponent |
| __unset() | 璁剧疆涓涓粍浠剁殑灞炴т负null銆 | CComponent |
| asa() | 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° | CComponent |
| attachBehavior() | 闄勫姞涓涓涓哄埌缁勪欢銆 | CComponent |
| attachBehaviors() | 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 | CComponent |
| attachEventHandler() | 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 | CComponent |
| canGetProperty() | 纭畾灞炴ф槸鍚﹀彲璇汇 | CComponent |
| canSetProperty() | 纭畾灞炴ф槸鍚﹀彲鍐欍 | CComponent |
| detachBehavior() | 浠庣粍浠朵腑鍒嗙涓涓涓恒 | CComponent |
| detachBehaviors() | 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 | CComponent |
| detachEventHandler() | 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 | CComponent |
| disableBehavior() | 绂佺敤涓涓檮鍔犺涓恒 | CComponent |
| disableBehaviors() | 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
| enableBehavior() | 鍚敤涓涓檮鍔犺涓恒 | CComponent |
| enableBehaviors() | 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
| evaluateExpression() | 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 | CComponent |
| getData() | 杩斿洖褰撳墠鍙敤鐨勬暟鎹」銆 | CDataProvider |
| getEventHandlers() | 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 | CComponent |
| getId() | 杩斿洖鎵鏈夋暟鎹彁渚涜呯殑鍞竴鏍囪瘑ID銆 | CDataProvider |
| getItemCount() | 杩斿洖褰撳墠椤甸潰鐨勬暟鎹」鏁扮洰銆 | CDataProvider |
| getKeys() | 杩斿洖鐩稿叧鏁版嵁椤圭殑閿 | CDataProvider |
| getPagination() | 杩斿洖pagination瀵硅薄銆 | CDataProvider |
| getSort() | 杩斿洖sort瀵硅薄銆 | CDataProvider |
| getTotalItemCount() | 杩斿洖鎵鏈夋暟鎹」鐨勬绘暟銆 | CDataProvider |
| hasEvent() | 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 | CComponent |
| hasEventHandler() | 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 | CComponent |
| hasProperty() | 纭畾灞炴ф槸鍚﹁瀹氫箟銆 | CComponent |
| raiseEvent() | 鍙戣捣涓涓簨浠躲 | CComponent |
| setData() | 涓簆rovider璁剧疆鏁版嵁椤广 | CDataProvider |
| setId() | 璁剧疆provider鐨処D銆 | CDataProvider |
| setKeys() | 涓簆rovider璁剧疆鏁版嵁椤圭殑閿 | CDataProvider |
| setPagination() | 璁剧疆provider鐨刾agination瀵硅薄銆 | CDataProvider |
| setSort() | 涓烘暟鎹彁渚涜呰缃帓搴忋 | CDataProvider |
| setTotalItemCount() | 璁剧疆鎵鏈夋暟鎹」鐨勬绘暟銆 | CDataProvider |
鍙椾繚鎶ゆ柟娉
| 鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|
| calculateTotalItemCount() | 璁剧疆鏁版嵁椤圭殑鎬绘暟銆 | CDataProvider |
| fetchData() | 鎻愬彇鐨勬寔涔呮ф暟鎹瓨鍌ㄧ殑鏁版嵁銆 | CDataProvider |
| fetchKeys() | 鎻愬彇鐨勬寔涔呮ф暟鎹瓨鍌ㄧ殑鏁版嵁閿 | CDataProvider |
灞炴ц缁
data
灞炴
杩斿洖褰撳墠鍙敤鐨勬暟鎹」銆
id
灞炴
杩斿洖鎵鏈夋暟鎹彁渚涜呯殑鍞竴鏍囪瘑ID銆
itemCount
灞炴
鍙
public integer getItemCount(boolean $refresh=false)
杩斿洖褰撳墠椤甸潰鐨勬暟鎹」鏁扮洰銆
鍜count($provider->getData())鐨勭粨鏋滅浉鍚屻
褰pagination涓篺alse鏃讹紝杩斿洖鍜totalItemCount鐩哥瓑鐨勫笺
keys
灞炴
杩斿洖鐩稿叧鏁版嵁椤圭殑閿
pagination
灞炴
杩斿洖pagination瀵硅薄銆
sort
灞炴
杩斿洖sort瀵硅薄銆
totalItemCount
灞炴
public integer getTotalItemCount(boolean $refresh=false)
public void setTotalItemCount(integer $value)
public void setTotalItemCount(integer $value)
杩斿洖鎵鏈夋暟鎹」鐨勬绘暟銆 褰pagination涓篺alse鏃讹紝杩斿洖鐨勫间笌itemCount鐩哥瓑銆
鏂规硶璇︾粏
calculateTotalItemCount()
鏂规硶
|
abstract protected integer calculateTotalItemCount()
| ||
| {return} | integer | 鏁版嵁椤圭殑鎬绘暟銆 |
婧愮爜锛 framework/web/CDataProvider.php#45 (鏄剧ず)
abstract protected function calculateTotalItemCount();
璁剧疆鏁版嵁椤圭殑鎬绘暟銆
fetchData()
鏂规硶
|
abstract protected array fetchData()
| ||
| {return} | array | 鏁版嵁椤圭殑鍒楄〃 |
鎻愬彇鐨勬寔涔呮ф暟鎹瓨鍌ㄧ殑鏁版嵁銆
fetchKeys()
鏂规硶
|
abstract protected array fetchKeys()
| ||
| {return} | array | 鏁版嵁椤圭殑閿垪琛ㄣ |
鎻愬彇鐨勬寔涔呮ф暟鎹瓨鍌ㄧ殑鏁版嵁閿
getData()
鏂规硶
|
public array getData(boolean $refresh=false)
| ||
| $refresh | boolean | 鏁版嵁鏄惁鍙互鍐嶆浠庢寔涔呮у瓨鍌ㄤ腑鍙栧嚭銆 |
| {return} | array | 杩斿洖褰撳墠鍙敤鐨勬暟鎹彁渚涜呯殑鍒楄〃銆 |
婧愮爜锛 framework/web/CDataProvider.php#134 (鏄剧ず)
public function getData($refresh=false)
{
if($this->_data===null || $refresh)
$this->_data=$this->fetchData();
return $this->_data;
}
杩斿洖褰撳墠鍙敤鐨勬暟鎹」銆
getId()
鏂规硶
|
public string getId()
| ||
| {return} | string | 鎵鏈夋暟鎹彁渚涜呯殑鍞竴鏍囪瘑ID銆 |
杩斿洖鎵鏈夋暟鎹彁渚涜呯殑鍞竴鏍囪瘑ID銆
getItemCount()
鏂规硶
|
public integer getItemCount(boolean $refresh=false)
| ||
| $refresh | boolean | 閿槸鍚﹀彲琚啀娆¤绠椼 |
| {return} | integer | 褰撳墠椤甸潰涓殑鏁版嵁椤规暟鐩 |
婧愮爜锛 framework/web/CDataProvider.php#179 (鏄剧ず)
public function getItemCount($refresh=false)
{
return count($this->getData($refresh));
}
杩斿洖褰撳墠椤甸潰鐨勬暟鎹」鏁扮洰銆
鍜count($provider->getData())鐨勭粨鏋滅浉鍚屻
褰pagination涓篺alse鏃讹紝杩斿洖鍜totalItemCount鐩哥瓑鐨勫笺
getKeys()
鏂规硶
|
public array getKeys(boolean $refresh=false)
| ||
| $refresh | boolean | 閿槸鍚﹀彲琚啀娆¤绠椼 |
| {return} | array | 涓data瀵瑰簲鐨勯敭鐨勫垪琛ㄣ傛瘡涓湪data 鐨勬暟鎹」閮芥湁涓涓敮涓鐨勯敭銆 |
婧愮爜锛 framework/web/CDataProvider.php#156 (鏄剧ず)
public function getKeys($refresh=false)
{
if($this->_keys===null || $refresh)
$this->_keys=$this->fetchKeys();
return $this->_keys;
}
杩斿洖鐩稿叧鏁版嵁椤圭殑閿
getPagination()
鏂规硶
|
public CPagination getPagination()
| ||
| {return} | CPagination | pagination瀵硅薄銆傚綋鍊间负false鏃讹紝琛ㄧず绂佺敤鍒嗛〉銆 |
婧愮爜锛 framework/web/CDataProvider.php#69 (鏄剧ず)
public function getPagination()
{
if($this->_pagination===null)
{
$this->_pagination=new CPagination;
if(($id=$this->getId())!='')
$this->_pagination->pageVar=$id.'_page';
}
return $this->_pagination;
}
杩斿洖pagination瀵硅薄銆
getSort()
鏂规硶
|
public CSort getSort()
| ||
| {return} | CSort | sort瀵硅薄銆備负false鏃讹紝琛ㄧず绂佺敤鎺掑簭銆 |
婧愮爜锛 framework/web/CDataProvider.php#101 (鏄剧ず)
public function getSort()
{
if($this->_sort===null)
{
$this->_sort=new CSort;
if(($id=$this->getId())!='')
$this->_sort->sortVar=$id.'_sort';
}
return $this->_sort;
}
杩斿洖sort瀵硅薄銆
getTotalItemCount()
鏂规硶
|
public integer getTotalItemCount(boolean $refresh=false)
| ||
| $refresh | boolean | 鎵鏈夋暟鎹」鏄惁鍙鍐嶆璁$畻銆 |
| {return} | integer | 鎵鏈夋暟鎹」鐨勭殑鏁扮洰銆 |
婧愮爜锛 framework/web/CDataProvider.php#190 (鏄剧ず)
public function getTotalItemCount($refresh=false)
{
if($this->_totalItemCount===null || $refresh)
$this->_totalItemCount=$this->calculateTotalItemCount();
return $this->_totalItemCount;
}
杩斿洖鎵鏈夋暟鎹」鐨勬绘暟銆 褰pagination涓篺alse鏃讹紝杩斿洖鐨勫间笌itemCount鐩哥瓑銆
setData()
鏂规硶
|
public void setData(array $value)
| ||
| $value | array | 灏嗘暟鎹」鏀惧埌provider涓 |
婧愮爜锛 framework/web/CDataProvider.php#145 (鏄剧ず)
public function setData($value)
{
$this->_data=$value;
}
涓簆rovider璁剧疆鏁版嵁椤广
setId()
鏂规硶
|
public void setId(string $value)
| ||
| $value | string | 鎵鏈夋暟鎹」provider鐨勫敮涓鏍囪瘑ID銆 |
璁剧疆provider鐨処D銆
setKeys()
鏂规硶
|
public void setKeys(array $value)
| ||
| $value | array | 璁剧疆provider鏁版嵁椤圭殑閿 |
婧愮爜锛 framework/web/CDataProvider.php#167 (鏄剧ず)
public function setKeys($value)
{
$this->_keys=$value;
}
涓簆rovider璁剧疆鏁版嵁椤圭殑閿
setPagination()
鏂规硶
|
public void setPagination(mixed $value)
| ||
| $value | mixed | 姝agination琚玴rovider浣跨敤銆傚间负CPagination瀵硅薄鎴栭厤缃 pagination瀵硅薄鐨勬暟缁勩傚鏋滃间负false锛岃〃绀虹鐢ㄥ垎椤点 |
婧愮爜锛 framework/web/CDataProvider.php#85 (鏄剧ず)
public function setPagination($value)
{
if(is_array($value))
{
$pagination=$this->getPagination();
foreach($value as $k=>$v)
$pagination->$k=$v;
}
else
$this->_pagination=$value;
}
璁剧疆provider鐨刾agination瀵硅薄銆
setSort()
鏂规硶
|
public void setSort(mixed $value)
| ||
| $value | mixed | 姝ゆ帓搴忚鏁版嵁鎻愪緵鑰呬娇鐢ㄣ傚间负CSort瀵硅薄鎴栭厤缃帓搴忓璞$殑鏁扮粍銆 濡傛灉鍊间负false锛岃〃绀虹鐢ㄦ帓搴忋 |
婧愮爜锛 framework/web/CDataProvider.php#117 (鏄剧ず)
public function setSort($value)
{
if(is_array($value))
{
$sort=$this->getSort();
foreach($value as $k=>$v)
$sort->$k=$v;
}
else
$this->_sort=$value;
}
涓烘暟鎹彁渚涜呰缃帓搴忋
setTotalItemCount()
鏂规硶
锛堝彲鐢ㄨ嚜 v1.1.1锛
|
public void setTotalItemCount(integer $value)
| ||
| $value | integer | 鏁版嵁椤圭殑鎬绘暟銆 |
婧愮爜锛 framework/web/CDataProvider.php#203 (鏄剧ず)
public function setTotalItemCount($value)
{
$this->_totalItemCount=$value;
}
璁剧疆鎵鏈夋暟鎹」鐨勬绘暟銆 姝ゆ柟娉曞湪calculateTotalItemCount涓嶈兘璁$畻鏃朵娇鐢ㄣ