日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Yii中的CComponent应用实例

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Yii中的CComponent应用实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先我們先了解一下如何創建一個CComponent,手冊講述如下:

?

CComponent 是所有組件類的基類。?
CComponent 實現了定義、使用屬性和事件的協議。?
屬性是通過getter方法或/和setter方法定義。訪問屬性就像訪問普通的對象變量。讀取或寫入屬性將調用應相的getter或setter方法,例如:

?

?

1 2 $a=$component->text;???? // equivalent to $a=$component->getText(); $component->text='abc';? // equivalent to $component->setText('abc');


getter和setter方法的格式如下,?

1 2 3 4 // getter, defines a readable property 'text' public function getText() { ... } // setter, defines a writable property 'text' with $value to be set to the property public function setText($value) { ... }

更多請參考手冊中的CComponent部份,在這里不是詳述重點

?

下面是應用需求,在一個網站前端,常常會有一個則欄,而這個側欄所需要的數據是一樣的,并且有兩個數據封裝,按照過往手法是寫一個通用方法,在需要的頁面內通過調用方法進行數據組裝,并附值到模板,但相比起組件還是不夠靈活。在CComponent是以對象方式訪問方法。

?

1.下面是代碼實現方式

在extensions新建component目錄,并創建SSidebarComponent類繼承Yii 的CComponent接口

?

class SSidebarComponent extends CComponent { }

?


?

為了方便查詢并減小代碼重復,我們先創建一個CDbCriteria的通用查詢原型

private function _criteria() {$uid = Yii::app()->user->id;$criteria = new CDbCriteria();$criteria->condition = 'user_id = :uid';$criteria->params = array(':uid'=>$uid);$criteria->order = 'id asc';return $criteria; }

?


按照CComponent約定的方式即setter,我們創建第一個數據對象,即以$component->account即可返回user_account_track表的查詢結果

public function getAccount() { return UserAccountTrack::model()->findAll($this->_criteria()); }

?


創建第二個數據對象方法

public function getWebsite() { return UserTrack::model()->findAll($this->_criteria()); }

?


同理即以$component->account即可返回usertrack表的查詢結果

?

如果您想在調用時對CComponent某個屬性進行附值,即setter

?

?

public $id; public function setId($value){$this->id = $value; }

?


這樣設置后當你引用組件時就可以通過以下方法附值

?

$component->id = '1';

?


2.下面講解調用過程

被動加載在你的控制器下引用組件,如我要在task這個index下使用側欄,優點,按需加載,資源消耗小,缺點:手工加載

public function actionIndex($id = null) {$component = Yii::createComponent(array('class'=>'ext.component.SSidebarComponent'));//引用組件$component->id = $id;//如果需要附值,就是這樣$account = $component->account;//實際是調用getAccount()的方法及返回值$website = $component->website;//實際是調用getWebsite()的方法及返回值 $this->render('publiclist',array('website'=>$website,//附值變量到模板'account'=>$account,//附值變量到模板 )); }

?


主動加載,優點,全站調用,以對象方法調用資源,缺點:資源消耗增多

/***config/main.php配置*/ component=>array('sidebar'=>array('class'=>'ext.component.SSidebarComponet',), ),/***controller調用*/ public function actionIndex() {Yii::app()->sidebar->account; }

?


?

OK現在已實現數據的調用過程,是不是比傳統的方法更靈活,代碼寫得更規范了

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Yii中的CComponent应用实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人av中文解说水果派 | 欧美熟妇精品黑人巨大一二三区 | 丁香花电影免费播放在线观看 | 国产毛片在线看 | 狠狠人妻久久久久久 | 99re这里只有精品首页 | 久草资源在线视频 | 夜夜爱夜夜操 | 诱人的乳峰奶水hd | 亚洲精品国产精品乱码在线观看 | 一级片免费网站 | 五月天看片 | 欧美日韩亚洲国产另类 | 中文字幕欧美在线 | 无遮挡在线| 亚洲欧美视频一区二区 | 草草国产 | 欧美 日韩 国产一区 | 久久精品无码专区免费 | 特级毛片爽www免费版 | 伊人77| 午夜精品久久久久久久 | 99热这里有 | 黄页免费网站 | 午夜激情一区二区 | 男人的天堂中文字幕 | 羞羞色视频 | 国产成人无码a区在线观看视频 | 日日干夜 | 手机看片99 | 亚洲av无码一区二区三区在线播放 | wwwxxx日本免费| 老熟女一区二区三区 | 五月婷婷激情在线 | 国产免费视屏 | 激情亚洲色图 | 极品人妻一区二区 | 亚洲精品一区二区18漫画 | caopeng视频| 国产精品免费观看视频 | 四虎影库 | 国产精品一区二区三区在线播放 | 一区二区在线免费看 | 日韩女优在线播放 | 午夜小影院 | 亚洲综合色在线观看 | 在线精品亚洲欧美日韩国产 | 黄a在线 | 激情啪啪网| 91porny在线 | 日本精品在线视频 | 91九色国产ts另类人妖 | 国内自拍小视频 | 韩国三色电费2024免费吗怎么看 | 91桃色网站 | 亚洲福利二区 | 亚洲瑟瑟 | 短视频在线观看 | 91麻豆精品国产91久久久更新时间 | 五月婷中文字幕 | 一二三在线视频 | 日韩1页 | 黄色激情毛片 | 好妞色妞国产在线视频 | 亚洲av人人夜夜澡人人 | 美女的胸给男人玩视频 | 欧美亚洲一区 | 欧美在线一二 | 欧美视频在线观看一区 | 久久国产精品-国产精品 | 国产精品男人的天堂 | 国产成人a∨| 欧美在线aa | 影音先锋欧美在线 | 黄wwwww| 国产123区 | 91久久精品一区二区三 | 最近中文字幕在线视频 | 综合激情网五月 | 无码国产69精品久久久久同性 | 国产激情二区 | 牛牛精品视频 | 麻豆tv在线观看 | 国产女人视频 | 中文字幕最新在线 | 91成人福利视频 | 中文字幕亚洲一区二区三区五十路 | 国产日韩欧美精品 | av瑟瑟| 久久福利视频导航 | 2019最新中文字幕 | 亚洲欧美日韩国产一区二区三区 | 国产福利视频在线 | 夜夜草网站 | 亚洲人成电影在线播放 | 亚洲欧美另类国产 | 少妇肥臀大白屁股高清 | 蜜臀麻豆| 91精品国产色综合久久不卡98 |