Khóa học lập trình PHP cung cấp một chương trình biểu mẫu nâng cao thông qua các lớp Fieldset và Fieldset_Field. Fieldset cung cấp một cách hướng đối tượng để tạo một biểu mẫu.
Nó có hỗ trợ đầy đủ cho các mô hình. Nó cũng hỗ trợ tích hợp để xác thực phía máy khách và phía máy chủ.
Để tạo một biểu mẫu chính thức, đủ để tạo một mô hình với cài đặt xác thực và biểu mẫu phù hợp. Chúng ta hãy tìm hiểu về lớp Fieldset và cách tạo một biểu mẫu bằng cách sử dụng nó trong chương này.
Fieldset là một tập hợp các đối tượng Fieldset_Field . Fieldset_Field xác định mục nhập riêng lẻ của một biểu mẫu, chẳng hạn như tên, họ, v.v. cùng với các xác nhận. Lớp Fieldset có các phương thức để thêm / chỉnh sửa / xóa các trường.
Khóa học lập trình PHP Nó có các tùy chọn để xác định các trường được xác định trong một mô hình và tạo các trường từ mô hình đã cho. Fieldset sử dụng các lớp Form và xác nhận trong nền để thực hiện công việc thực sự. Chúng ta hãy xem một số phương thức quan trọng của lớp Fieldset.
forge tạo ra một thể hiện Fieldset mới. Nó có hai tham số sau
$ name - định danh cho bộ trường
$ config - mảng cấu hình. Tùy chọn có thể là validation_instance và form_instance. validation_instance thể có Validation đối tượng và form_instance có thể có đối tượng Form.
$ name - tên của trường
$ nhãn - nhãn cho trường
$ thuộc tính - Thuộc tính thẻ HTML
$ quy tắc - quy tắc xác thực
add_model thêm trường của mô hình vào bộ trường. Nó có ba tham số sau đây,
$ class - tên lớp
$ dụ - thể hiện của lớp để điền vào các trường có giá trị
$ phương thức - tên của phương thức trong lớp. Phương pháp này được sử dụng để thêm các trường vào bộ trường. Orm \ Model có phương thức cần thiết. Tên phương thức mặc định là set_form_fields.
xác nhận
xác nhận được thể hiện xác thực của bộ trường hiện tại.
Khóa học lập trình PHP đầu vào
Bí danh cho $ this-> xác thực () -> input ().
lỗi
Bí danh cho $ this-> xác thực () -> error ().
show_errors
Bí danh cho $ this-> xác thực () -> show_errors ().
Ví dụ làm việc
Hãy tạo một biểu mẫu nâng cao để thêm nhân viên mới vào ứng dụng nhân viên mẫu của chúng tôi bằng lớp Fieldset.
Cập nhật mô hình
Cập nhật mô hình nhân viên với các quy tắc xác nhận cần thiết và thêm một người quan sát xác nhận như sau.
Nó có hỗ trợ đầy đủ cho các mô hình. Nó cũng hỗ trợ tích hợp để xác thực phía máy khách và phía máy chủ.
![]() |
| Khóa học lập trình PHP |
Để tạo một biểu mẫu chính thức, đủ để tạo một mô hình với cài đặt xác thực và biểu mẫu phù hợp. Chúng ta hãy tìm hiểu về lớp Fieldset và cách tạo một biểu mẫu bằng cách sử dụng nó trong chương này.
Fieldset
Fieldset là một tập hợp các đối tượng Fieldset_Field . Fieldset_Field xác định mục nhập riêng lẻ của một biểu mẫu, chẳng hạn như tên, họ, v.v. cùng với các xác nhận. Lớp Fieldset có các phương thức để thêm / chỉnh sửa / xóa các trường.
Khóa học lập trình PHP Nó có các tùy chọn để xác định các trường được xác định trong một mô hình và tạo các trường từ mô hình đã cho. Fieldset sử dụng các lớp Form và xác nhận trong nền để thực hiện công việc thực sự. Chúng ta hãy xem một số phương thức quan trọng của lớp Fieldset.
làm giả
forge tạo ra một thể hiện Fieldset mới. Nó có hai tham số sau
$ name - định danh cho bộ trường
$ config - mảng cấu hình. Tùy chọn có thể là validation_instance và form_instance. validation_instance thể có Validation đối tượng và form_instance có thể có đối tượng Form.
$employee_form = Fieldset::forge('employee');
ví dụ
cá thể trả về thể hiện Fieldset được tạo trước đó bằng mã định danh.$employee_form = Fieldset::instance('employee');
lấy tên
Lấy định danh của thể hiện fieldset.$employee_form = Fieldset::forge('employee'); $name = $employee_form->get_name();
thêm vào
Khóa học lập trình PHP add tạo một thể hiện Fieldset_Field mới và thêm nó vào fieldset hiện tại. Nó chứa bốn tham số sau đây$ name - tên của trường
$ nhãn - nhãn cho trường
$ thuộc tính - Thuộc tính thẻ HTML
$ quy tắc - quy tắc xác thực
$employee_field = $employee_form-> add ( 'employee_lastname', 'Lastname', array ('class' => 'pretty_input') ); // with validation rules $employee_form->add ( 'email', 'E-mail', array('type' => 'email', 'class' => 'pretty_input'), array('required', 'valid_email') );
Thêm trước
add_b Before tương tự như add, ngoại trừ nó có thêm một tham số để chỉ định trường mà trước đó trường mới được tạo sẽ được thêm vào.$employee_form->add_before ( 'employee_firstname', 'Firstname', array ('class' => 'pretty_input'), array(), 'employee_lastname' );
xóa bỏ
xóa xóa trường được chỉ định từ bộ trường.$employee_form->delete('employee_firstname');
cánh đồng
trường nhận được tất cả các trường hoặc một trường được chỉ định từ bộ trường.$fields = $employee_form->field(); $lastname_field = $employee_form->field('employee_lastname');
xây dựng
build là bí danh cho $ this-> form () -> build () . Tạo đánh dấu HTML của biểu mẫu.$employee_form->build(Uri::create('employee/add'));
Cho phép
cho phép kích hoạt lại một trường đã bị vô hiệu hóa trước đó.$employee_form->enable('employee_firstname');
vô hiệu hóa
vô hiệu hóa cho phép vô hiệu hóa một trường trong bộ trường được xây dựng.$employee_form->disable('employee_firstname');
hình thức
biểu mẫu trả về thể hiện của biểu mẫu hiện tại.$form = employee_form->form();add_model
add_model thêm trường của mô hình vào bộ trường. Nó có ba tham số sau đây,
$ class - tên lớp
$ dụ - thể hiện của lớp để điền vào các trường có giá trị
$ phương thức - tên của phương thức trong lớp. Phương pháp này được sử dụng để thêm các trường vào bộ trường. Orm \ Model có phương thức cần thiết. Tên phương thức mặc định là set_form_fields.
$employee_form = Fieldset::forge('employee'); $employee_form->add_model('Model_Employee');
dân cư
dân cư thiết lập giá trị ban đầu của các trường trong bộ trường bằng cách sử dụng thể hiện mô hình.$emp = new Model_Employee(); $emp->name = "Jon"; $employee_form->populate($emp);
hồi sinh
repopulation giống như dân cư, ngoại trừ nó tái sinh các trường trong bộ trường.xác nhận
xác nhận được thể hiện xác thực của bộ trường hiện tại.
$validation = $employee_form->validation();
xác nhận
Bí danh cho $ this-> xác thực () -> xác thực ().Khóa học lập trình PHP đầu vào
Bí danh cho $ this-> xác thực () -> input ().
lỗi
Bí danh cho $ this-> xác thực () -> error ().
show_errors
Bí danh cho $ this-> xác thực () -> show_errors ().
Ví dụ làm việc
Hãy tạo một biểu mẫu nâng cao để thêm nhân viên mới vào ứng dụng nhân viên mẫu của chúng tôi bằng lớp Fieldset.
Cập nhật mô hình
Cập nhật mô hình nhân viên với các quy tắc xác nhận cần thiết và thêm một người quan sát xác nhận như sau.
<?php class Model_Employee extends Orm\Model { protected static $_connection = 'production'; protected static $_table_name = 'employee'; protected static $_primary_key = array('id'); protected static $_properties = array ( 'id', 'name' => array ( 'data_type' => 'varchar', 'label' => 'Employee Name', 'validation' => array ( 'required', 'min_length' => array(3), 'max_length' => array(80) ), 'form' => array ( 'type' => 'text' ), ), 'age' => array ( 'data_type' => 'int', 'label' => 'Employee Age', 'validation' => array ( 'required', ), 'form' => array ('type' => 'text' ), ), ); // Just add the Observer, and define the required event protected static $_observers = array('Orm\\Observer_Validation' => array ( 'events' => array('before_save'))); }Ở đây, chúng tôi đã xác định các quy tắc xác thực cho các trường tên và tuổi và thêm một người quan sát mới để thực hiện xác thực phía máy chủ trước khi lưu mô hình vào cơ sở dữ liệu.
Quy tắc xác thực tương tự sẽ tạo ra các thuộc tính xác thực đầu vào cần thiết cũng như trong biểu mẫu.
Tạo hành động mới, action_advifiedform trong bộ điều khiển nhân viên như sau.
Khóa học lập trình PHP Cập nhật phương thức hành động, action_advifiedform để xử lý biểu mẫu và thêm dữ liệu nhân viên được người dùng nhập vào cơ sở dữ liệu trong bộ điều khiển nhân viên như sau.
Khóa học lập trình PHP Bây giờ, yêu cầu URL, và nhập một số dữ liệu nhân viên và gửi biểu mẫu. Nếu dữ liệu không được cung cấp, thì biểu mẫu sẽ nhắc người dùng nhập dữ liệu như trong ảnh chụp màn hình sau.
Nếu người dùng bỏ qua xác thực phía máy khách, thì máy chủ sẽ xác thực biểu mẫu và hiển thị lỗi như trong ảnh chụp màn hình sau.
Nếu dữ liệu vượt qua xác thực phía máy khách và máy chủ, thì dữ liệu nhân viên sẽ được lưu vào cơ sở dữ liệu và trang được chuyển hướng đến trang danh sách.
Tạo biểu mẫu
Tạo hành động mới, action_advifiedform trong bộ điều khiển nhân viên như sau.
public function action_advancedform() { // create a new fieldset and add employee model $fieldset = Fieldset::forge('employee')->add_model('Model_Employee'); // get form from fieldset $form = $fieldset->form(); // add submit button to the form $form->add('Submit', '', array('type' => 'submit', 'value' => 'Submit')); // build the form and set the current page as action $formHtml = $fieldset->build(Uri::create('employee/advancedform')); // set form in data $data = array(); $data['form'] = $formHtml; return Response::forge(View::forge('employee/advancedform', $data, false)); }Khóa học lập trình PHP Ở đây, chúng tôi đã tạo biểu mẫu bằng cách sử dụng fieldset và gửi biểu mẫu đến dạng xem. Tiếp theo, thêm chế độ xem cho hành động, nhiên liệu / ứng dụng / lượt xem / nhân viên / advancedform.php như sau.
<!DOCTYPE html> <html lang = "en"> <head> <title>Employee :: add page</title> <meta charset = "utf-8"> <meta name = "viewport" content = "width = device-width, initial-scale = 1"> <?php echo Asset::css('bootstrap.css'); ?> <style> table { width: 90%; } table tr { width: 90% } table tr td { width: 50% } input[type = text], select { width: 100%; padding: 12px 20px; margin: 8px 0; display: inline-block; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; } input[type = submit] { width: 100%; background-color: #3c3c3c; color: white; padding: 14px 20px; margin: 8px 0; border: none; border-radius: 4px; cursor: pointer; } div { border-radius: 5px; background-color: #f2f2f2; padding: 20px; } </style> </head> <body> <div class = "container"> <?php if(isset($errors)) { echo $errors; } echo $form; ?> </div> </body> </html>Bây giờ, yêu cầu trang add sẽ hiển thị mẫu sau.
Mẫu quy trình
Khóa học lập trình PHP Cập nhật phương thức hành động, action_advifiedform để xử lý biểu mẫu và thêm dữ liệu nhân viên được người dùng nhập vào cơ sở dữ liệu trong bộ điều khiển nhân viên như sau.
public function action_advancedform() { // create a new fieldset and add employee model $fieldset = Fieldset::forge('employee')->add_model('Model_Employee'); // get form from fieldset $form = $fieldset->form(); // add submit button to the form $form->add('Submit', '', array('type' => 'submit', 'value' => 'Submit')); // build the form and set the current page as action $formHtml = $fieldset->build(Uri::create('employee/advancedform')); if (Input::param() != array()) { try { $article = Model_Employee::forge(); $article->name = Input::param('name'); $article->url = Input::param('age'); $article->save(); Response::redirect('employee/list'); } catch (Orm\ValidationFailed $e) { $view = View::forge('employee/advancedform'); $view->set('form', $formHtml, false); $view->set('errors', $e->getMessage(), false); } } return Response::forge($view); }Ở đây, chúng tôi đã được chuyển hướng đến trang danh sách nhân viên, khi người dùng nhập dữ liệu được xác thực và lưu vào cơ sở dữ liệu. Nếu không, chúng tôi sẽ được hiển thị các hình thức một lần nữa.
Tạo biểu mẫu
Khóa học lập trình PHP Bây giờ, yêu cầu URL, và nhập một số dữ liệu nhân viên và gửi biểu mẫu. Nếu dữ liệu không được cung cấp, thì biểu mẫu sẽ nhắc người dùng nhập dữ liệu như trong ảnh chụp màn hình sau.
Nếu người dùng bỏ qua xác thực phía máy khách, thì máy chủ sẽ xác thực biểu mẫu và hiển thị lỗi như trong ảnh chụp màn hình sau.
Nếu dữ liệu vượt qua xác thực phía máy khách và máy chủ, thì dữ liệu nhân viên sẽ được lưu vào cơ sở dữ liệu và trang được chuyển hướng đến trang danh sách.

Không có nhận xét nào:
Đăng nhận xét