Saturday, March 19, 2016

Tìm hiểu về form trong yii2 framework


Trong Yii2 chúng ta sử dụng ‘yii\widgets\ActiveForm’ và‘yii\helpers\Htm’ để tạo forms.Lớp Former dùng để tạo forms và sau đó đưa ra các phần tử trong form(cụ thể là các tag dùng trong form) giống như textboxes,radio buttons,checkboxes ..vv.. Trong bài viết này chúng ta sẽ tìm hiểu làm thế nào để tạo ra form trong yii2 sử dụng lớp activeform.
Đầu tiên chúng ta cần bao gồm hai lớp trên trong file view .
use yii\helpers\Html; 
use yii\widgets\ActiveForm;
Bây giờ chúng ta đã có những lớp cần thiết để tạo form, tạo ra các form sử dụng phương thức ActiveForm::begin()(hay thẻ mở của form).Trong cùng 1 cách ,chúng ta có thể đóng form sử dụng phương thức ActiveForm::end().Chú ý rằng,chúng ta có thể tạo ra các form nhanh chóng với nhiều attributes.Có thể thực hiện bằng cách truyền tham
use yii\helpers\Html; 
use yii\widgets\ActiveForm;

/* default initialization */

$form = ActiveForm::begin();

/* parameterized initialization */ 
$form = ActiveForm::begin([ 
id => form_id’, 
options => [ 
class => form_class’, 
enctype => multipart/form-data’, 
], 
]); 
//render form elements here 
ActiveForm::end();
Bây giờ tạo ra các phần tử trong form bằng việc sử dụng đối tượng Model để tạo ra chúng.
Tạo Text inputs:Một tag text input đơn giản có thể được tạo ra như mẫu dưới đây.
$form->field($model,'fieldName');
Để tùy chọn label và các hint chúng ta sửa dụng code dưới đây :
  $form->field($model,’fieldName’)->textInput()->hint(‘Hint Text’)->label(‘Label Name’);
Ngoài ra lớp textInput() chấp nhận 1 mảng như 1 tham số đầu vào.Bạn có thể thiết lập các thuộc tính html khác nhau như class,maxlength,minlength ... .
Ngoài ra bạn có thể sử dụng code dưới đây để tạo ra tag input text :
$form->field($model,’fieldName’)->input(‘text);

Tạo Textarea:

Tương tự ,chúng ta có thể tạo ra textarea như code dưới đây 
$form->field($model,'fieldName')->textarea(); 
$form->field($model,'fieldName')->textarea()->label('Label'); 
$form->field($model,'fieldName')->textarea(array('rows'=>2,'cols'=>5));

Tạo password fields

Trường password có thể được tạo bằng code dưới đây:
//Format 1 
$form->field($model, fieldName’)->input(‘password’); 
//Format 2 
$form->field($model, fieldName’)->passwordInput(); 
//Format 3 
$form->field($model, fieldName’)->passwordInput()->hint(‘Provide your hint here’)->label(‘Label’);

Thẻ Email Input

Code dưới đây để tạo ra thẻ Email Input
$form->field($model, 'fieldName')->input('email');

Thẻ Upload FIle

Hàm fileInput() được sử dụng để tạo 1 thẻ upload file
$form->field($model, 'fieldName')->fileInput();
Để tạo ra nhiều upload cùng lúc ta sử dụng tham số ‘multiple’ trong phương thức fileInput() theo code dưới đây
$form->field($model, 'fieldName[]')->fileInput(['multiple'=>'multiple']);

Thẻ Checkbox:

$form->field($model, 'fieldName')->checkbox();
Chúng ta có thể tùy chọn các label(nhãn) và các thuộc tính (Attributes) bằng 1 mảng như là một thuộc tính trong hàm checkbox()
$form->field($model, 'fieldName')->checkbox(array( 
'label'=>'', 
'labelOptions'=>array('style'=>'padding:5px;'), 
'disabled'=>true 
)) 
->label('Label');

Tạo thẻ Checkbox List Input :

Sử dụng phương thức checkboxList()và đưa vào 1 mảng với các tham số để có thể tạo được checkbox list.Mảng đó sẽ tạo ra các option(tùy chọn) trong checkbox list.
$form->field($model, 'fieldName[]')->checkboxList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']);;

Tạo Radio button :

Nhiều tương tự như thẻ checkbox, chúng ta có thể tạo ra một radio button như hình dưới đây:
//wihout any parameters

$form->field($model, 'fieldName')->radio();
//with parameter

$form->field($model, 'fieldName')->radio(array( 
'label'=>'', 
'labelOptions'=>array('style'=>'padding:5px;'), 
'disabled'=>true 
)) 
->label('Label');

Tạo Radio button list :

Sử dụng phương thức radioList() để tạo radio button list,
Using radioList() method we can create a radio button list, tương tự như khi tạo checkbox list
$form->field($model, 'fieldName[]')->radioList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']);

Tạo DropDown List :

dropDownList() là hàm được sử dụng để tạo tag HTML select .Tùy chọn đưa vào có thể là 1 mảng .
$form->field($model, 'fieldName')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']);

Tạo Hidden input :

Để tạo 1 hidden inout chúng ta sử dụng phương thức hiddenInput()
$form->hiddenInput($model,'fieldName',array('value'=>value'));

Tạo nút submit:

Để tạo ra các submit button chúng ta sử dụng phương thức Html::submitButton()
Html::submitButton(‘Submit’, [‘class’=> btn btn-primary’]);
Để xem chi tiết hơn mời các bạn xem video dưới đây :

Chúc các bạn thành công

No comments:

Post a Comment