yii框架學習之---表單

2.5表單

1.表單的創建

1.在Yii中主要是通過yii\widgets\ActiveForm類來創建表單(表單小部件)。

2.ActiveForm::begin()不僅標誌着表單的開始,也同時創建了一個表單實例。

<?php $form=ActiveForm::begin();?> //$form是表單實例
...
<?php ActiveForm::end();?>

3.放在ActiveForm::begin()與ActiveForm::end()之間的所有內容都被包裹在HTML的<form>標籤中。

4.中間是通過調用ActiveForm::field()方法創建ActiveField實例,這個實例會創建表單元素與元素的標籤,以及對應的JavaScript應證。 

5.每個ActiveField都有對應的模型和屬性,input輸入框的name屬性會自動地根據屬性名創建;同時還會用屬性的驗證規則來驗證用戶的數據輸入。

圖片截取自:魏曦教你學Yii2.0優酷視頻.

 2.ActiveField對象的使用

由第一節的知識點可以知道,對於表單如何使用的問題其實就是問:

ActiveField類如何使用的問題。

//舉個例子
<?= $form->field($model,'body')->textarea(['rows'=>3]) =?>
//$form->field($model,'body')創建了一個ActiveField對象;
//ActiveField的方法textarea()創建了3行的輸入框;

3.Html幫助類

在表單的開始和結束標籤之間還有一些和模型對象沒有關係的格外HTML標籤,比如submitButton我們可以:

  • 使用純的Html標籤
  • 使用yii\helpers\Html幫助類中的方法來添加到表單中

圖片截取自:魏曦教你學Yii2.0優酷視頻.

4.塊賦值

input標籤中的name,實際是以對象來命名的一個數組,數組的健對應的是模型的屬性。

<input type="text" id="contacnform-name" name="ContactForm[name]"/>

 模型執行load方法,就是對每個屬性都執行這樣的一句賦值:

$model->name=isset($ContanctForm['name']) ? $ContanctForm['name'] : null;

所以這句話就可以理解了:

$model->load(Yii::$app->request->post())

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章