小部件是檢視裡的可重用單元。
小部件是在檢視中使用的,但是可能需要使用控制器傳給他的模型,比如在渲染表單的時候。比如一般的時間拾取器就可以直接砸檢視裡加入如下**就可以:
<?phpuseyii\jui\datepicker;
?>
<?= datepicker::widget(['name' => 'date']) ?>
如果用到model 就大致是這樣的:
<?phpuseyii\jui\datepicker;
?>
<?= datepicker::widget([
'model' => $model,
'attribute' => 'from_date',
'language' => 'ru',
'clientoptions' =>[
'dateformat' => 'yy-mm-dd',],]) ?>
一些小部件可在[[yii\base\widget::begin()]] 和 [[yii\base\widget::end()]] 呼叫中使用資料內容。比如activeform 小組件就是這樣使用的。
<?phpuseyii\widgets\activeform;
useyii\helpers\html;
?>
<?php $form = activeform::begin(['id' => 'login-form']); ?>
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'password')->passwordinput() ?>
class="form-group">
<?= html::submitbutton('login') ?>
<?php activeform::end(); ?>
和呼叫 [[yii\base\widget::widget()]] 返回渲染結果不同, 呼叫 [[yii\base\widget::begin()]] 方法返回乙個可組建小部件內容的小部件例項。
建立小部件:
繼承 yii\base\widget 並實現 init 和 run方法就可以建立乙個小部件。
1、建立乙個像上面提到的時間選擇器那樣可以直接輸出的小部件:
useyii\base\widget;
useyii\helpers\html;
class hellowidget extends
widget
}public
function
run()
}在模板中使用的**是:
<?phpuse?>
<?= hellowidget::widget(['message'=>'this is a hellowidget!'])?>
2、如果要建立乙個用 begin 和 end 中使用的小部件:
useyii\base\widget;
useyii\helpers\html;
class hellowidget extends
widget
public
function
field()
public
function
run()
}模板裡呼叫是這樣的:
<?phpuseyii\helpers\html;
use?>
<?php echo html::encode($message);?>
<?php $hello = hellowidget::begin();?>這次使用的事begin 和 end方法。
<?= $hello->field();?>
<?php hellowidget::end();?>
publicfunction
run()
最後提點應該注意的:
Yii2 0框架 小部件 DetailView
1.資料小部件 yii 提供了一套資料小部件 widgets,這些小部件可以用於展示資料 detailview 小部件用於顯示一條記錄資料。listview 和 girdview 小部件能夠用於顯示乙個擁有分頁 排序和過濾功能的乙個列表或者 2.detailview 用來顯示一條記錄的詳情,下面這些...
Yii框架中表單小部件
文字框 textinput 密碼框 passwordinput 單選框 radio radiolist 核取方塊 checkbox checkboxlist 下拉框 dropdownlist 隱藏域 hiddeninput 文字域 textarea rows 3 檔案上傳 fileinput 提交按...
yii表單小部件
要想使用表單小部件 必須使用model 在使用model時 需要載入表單小部件的元件 分別是 yii widgets activeform 和 yii helpers html 然後在我們的model類中 定於各個表單小部件的name值 定義規則 namespace frontend models ...