Professional Documents
Culture Documents
05 YiiForm
05 YiiForm
ActiveForm là một widget được xây dựng như một mô hình tương tác trực tiếp với một hoặc nhiều
mô hình dữ liệu.
ActiveForm là một widget được xây dựng như một mô hình tương tác trực tiếp với một hoặc nhiều
mô hình dữ liệu.
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
use yii\helpers\Html;
use yii\widgets\ActiveForm;
$form = ActiveForm::begin([
'options' => [ // Khai báo các thuộc tính của thẻ HTML. Như class, id, enctype...
],
])
ActiveForm::end();
?>
Các trường dữ liệu của ActiveForm
Các trường dữ liệu của ActiveForm được tạo bởi phương thức field(), trong đó truyền vào các giá trị
là model và tên thuộc tính của model đó.
I. Text Input
Ở trên là đoạn code khai báo một text input đi kèm với thuộc tính hint và label. Nếu bỏ đi thì Yii sẽ
mặc định không có hint và label sẽ lấy theo model. Ngoài ra nếu không muốn hiển thị label ta có thể
set label là false.
Bên trong textInput() ta có thể khai báo các thuộc tính như class, id, maxlength...
Ngoài ra ta có thể bỏ textInput() nếu không cần khai báo thêm thuộc tính khác.
II. TextArea
Cũng giống như text input, textarea cũng có các thuộc tính đi kèm như hint và label.
Bên trong textArea() ta có thể khai báo các thuộc tính như class, id, rows, cols...
Khi khai báo field text area không thể bỏ textArea().
(những trường khác cũng tương tự)
// Cách 1
// Cách 2
<?= $form->field($model, 'password')->passwordInput() ?>
Để sử dụng được file input thì lúc bắt đầu ActiveForm ta phải khai báo thuộc tính
'enctype' => 'multipart/form-data'
// Upload 1 file
'labelOptions'=>[
'style'=>'padding:5px;'
Checkbox List dùng khi có một trường có thể chọn nhiều giá trị.
'labelOptions'=>[
'style'=>'padding:5px;'
<?php echo $form->field($model, 'type[]')->radioList(['a' => 'Type A', 'b' => 'Type
B', 'c' => 'Type C']); ?>
IX. ListBox Field
// Listbox với prompt text
[1=>'1',2=>'2',3=>'3',4=>'4',5=>'5'],
['prompt'=>'Chọn']
); ?>
[1=>'1',2=>'2',3=>'3',4=>'4',5=>'5'],
['prompt'=>'Select','size'=>3]
); ?>
[1=>'1',2=>'2',3=>'3',4=>'4',5=>'5'],
X. DropDown List
//Dropdown List truyền vào mảng các item và option của dropdown
<?=echo $form->field($model, 'type')->dropDownList(['a' => 'Type A', 'b' => 'Type B',
'c' => 'Type C'],['prompt'=>'Chọn']); ?>
<?php
$types = app\models\Type::find()->all();
// Dùng ArrayHelper để lấy về một mảng với key là 'code' và value là 'name'
$listData = yii\helpers\ArrayHelper::map($types,'code','name');
?>
XI. Button
//Button thường
//Button submit
// Button reset
Ngoài ra còn nhiều phương thức khác của ActiveForm bạn có thể tìm hiểu qua link:
http://www.yiiframework.com/doc-2.0/yii-widgets-activeform.html
* Nếu có bất cứ thắc mắc hoặc đóng góp cho bài viết được hoàn thiện hơn thì hãy để lại bình luận phía
dưới nhé!