国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

YII2 WIDGET的學習筆記

2024-05-04 21:50:00
字體:
供稿:網(wǎng)友

CWidget是所有Widget的基類。CWidget是自包含組件,可以看出是MVC的簡略版,CWidget相比Controller,既沒有actions,也沒有filters

widget,英文意思為小工具,小掛件,在程序里大概也是這個意思,Yii2中叫做組件,這個示例僅僅是寫一個基本的Yii2 widget,看看能不能運行。

關(guān)于widgets,他們在yii中的關(guān)系如下

system.web.widgets  系統(tǒng)自帶最基本的widget 

zii.widgets  是基本擴展 

zii.widgets.grid  是基本擴展的重要分支 

zii.widgets.jui  是插件擴展

一,system.web.widgets

包括:

  1. CActiveForm  
  2. CAutoComplete  
  3. CClipWidget  
  4. CContentDecorator  
  5. CFilterWidget  
  6. CFlexWidget  
  7. CHtmlPurifier  
  8. CInputWidget  
  9. CMarkdown  
  10. CMaskedTextField  
  11. CMultiFileUpload  
  12. COutputCache  
  13. COutputProcessor  
  14. CStarRating  
  15. CTabView  
  16. CTextHighlighter  
  17. CTreeView  
  18. CWidget 

看vendor/yiisoft/yii2/base/Widget.php的定義,widget需要繼承這個類,begin,end,widget,run這些方法都可以在子類進行重寫定義,這里我們重寫run試試。

新建一個類Testwidgets.php:

  1. namespace common/widgets; 
  2.  
  3. use yii/base/Widget; 
  4. //Vevb.com 
  5. class Testwidgets extends Widget 
  6.     public function __Construct() 
  7.     { 
  8.         echo 'test test ...'
  9.     } 
  10.  
  11.     public function run() 
  12.     { 
  13.         echo 'run run run ...'
  14.     } 

在一個模板文件中這樣使用:

  1. <?php 
  2. /* @var $this yii/web/View */ 
  3.  
  4. use common/widgets/Testwidgets; 
  5.  
  6. ?> 
  7.  
  8. <p> 
  9.     <?php echo Testwidgets::widget();?> 
  10. </p> 

頁面輸出:test test …run run run …

是不是很簡單,當然這只是一個最簡單的Yii2 widget,只是搞清楚寫widget的基本方式.

比如Yii2的表單widget,涉及到很多用法,就要定義額外的類和方法來實現(xiàn)需求.

  1. <?php $model = new User();?> 
  2. <?php $form = ActiveForm::begin(['id'=>'login-form']);?> 
  3. <?= $form->field($model,'username')->label('用戶名') ?> 
  4. <?= $form->field($model,'password_hash')->passwordInput()->label('密碼') ?> 
  5. <?php ActiveForm::end() ;?> 

這樣就很方便生成一個表單,而且可以靈活設(shè)置各種屬性,其實原理都是一樣的.

關(guān)于Yii2的表單widget,可以好好研究一下,寫的很妙,兩個文件:

vendor/yiisoft/yii2/widgets/ActiveForm.php和

vendor/yiisoft/yii2/widgets/ActiveField.php

使用示例:

Yii2封裝了一個表單widget,很方便生成各類各式的表單,試了幾種表單,可以自由設(shè)置樣式、類型、屬性,如下代碼:

  1. <?php $model = new User();?> 
  2. <?php $form = ActiveForm::begin(['id'=>'login-form']);?> 
  3. <?= $form->field($model,'username')->label('用戶名') ?> 
  4. <?= $form->field($model,'password_hash')->passwordInput()->label('密碼') ?> 
  5. <?= $form->field($model,'email')->textarea(['rows'=>5]) ?> 
  6. <?= $form->field($model,'status')->checkboxList([1=>'hehe',2=>'haha',3=>'xixi',4=>'heihei'],['id'=>'dddd'])->label('多選') ?> 
  7. <?php ActiveForm::end() ;?> 

如果想更全面了解如何使用,還是需要看一看源碼,才能更好的靈活使用yii2的生成表單widget.

源碼文件位置:vendor/yiisoft/yii2-gii/components/ActiveField.php

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 车致| 万全县| 平陆县| 藁城市| 神木县| 富宁县| 原平市| 寿阳县| 青铜峡市| 卢氏县| 巢湖市| 盐边县| 商洛市| 措勤县| 曲靖市| 句容市| 漳平市| 乳山市| 浑源县| 陆良县| 新晃| 东阳市| 通渭县| 将乐县| 彭州市| 图们市| 嘉义县| 和田市| 雅安市| 金平| 军事| 塔城市| 定结县| 桐梓县| 新野县| 汉中市| 三河市| 屏南县| 中方县| 西林县| 九龙坡区|