Yii Framework v1.1.10 绫诲弬鑰

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鎺ュ彛鐨勫熀绫汇

缁ф壙鐨勭被涓昏瀹炵幇涓変釜鏂规硶锛fetchDatafetchKeyscalculateTotalItemCount

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
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 灞炴
public array getData(boolean $refresh=false)
public void setData(array $value)

杩斿洖褰撳墠鍙敤鐨勬暟鎹」銆

id 灞炴
public string getId()
public void setId(string $value)

杩斿洖鎵鏈夋暟鎹彁渚涜呯殑鍞竴鏍囪瘑ID銆

itemCount 灞炴 鍙
public integer getItemCount(boolean $refresh=false)

杩斿洖褰撳墠椤甸潰鐨勬暟鎹」鏁扮洰銆 鍜count($provider->getData())鐨勭粨鏋滅浉鍚屻 褰pagination涓篺alse鏃讹紝杩斿洖鍜totalItemCount鐩哥瓑鐨勫笺

keys 灞炴
public array getKeys(boolean $refresh=false)
public void setKeys(array $value)

杩斿洖鐩稿叧鏁版嵁椤圭殑閿

pagination 灞炴
public CPagination getPagination()
public void setPagination(mixed $value)

杩斿洖pagination瀵硅薄銆

sort 灞炴
public CSort getSort()
public void setSort(mixed $value)

杩斿洖sort瀵硅薄銆

totalItemCount 灞炴
public integer getTotalItemCount(boolean $refresh=false)
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 鏁版嵁椤圭殑鍒楄〃
婧愮爜锛 framework/web/CDataProvider.php#35 (鏄剧ず)
abstract protected function fetchData();

鎻愬彇鐨勬寔涔呮ф暟鎹瓨鍌ㄧ殑鏁版嵁銆

fetchKeys() 鏂规硶
abstract protected array fetchKeys()
{return} array 鏁版嵁椤圭殑閿垪琛ㄣ
婧愮爜锛 framework/web/CDataProvider.php#40 (鏄剧ず)
abstract protected function fetchKeys();

鎻愬彇鐨勬寔涔呮ф暟鎹瓨鍌ㄧ殑鏁版嵁閿

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銆
婧愮爜锛 framework/web/CDataProvider.php#51 (鏄剧ず)
public function getId()
{
    return 
$this->_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銆
婧愮爜锛 framework/web/CDataProvider.php#60 (鏄剧ず)
public function setId($value)
{
    
$this->_id=$value;
}

璁剧疆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涓嶈兘璁$畻鏃朵娇鐢ㄣ

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.