CakePHP - Xử lý biểu mẫu

CakePHP cung cấp nhiều thẻ tích hợp khác nhau để xử lý các biểu mẫu HTML một cách dễ dàng và an toàn. Giống như nhiều khuôn khổ PHP khác, các phần tử chính của HTML cũng được tạo bằng CakePHP. Sau đây là các hàm khác nhau được sử dụng để tạo các phần tử HTML.

Các chức năng sau đây được sử dụng để generate select options -

Cú pháp _selectOptions (mảng $ Elementsarray ( ) , mảng $ cha mẹ () , boolean $ showParentsnull , mảng $ thuộc tínharray () )
Thông số
  • Các yếu tố để định dạng

  • Cha mẹ cho OPTGROUP

  • Cho bố mẹ xem

  • Thuộc tính HTML

Lợi nhuận mảng
Sự miêu tả Trả về một mảng các phần tử OPTION / OPTGROUP được định dạng

Các chức năng sau được sử dụng to generate HTML select element.

Cú pháp select (string $ fieldName, array $ options array (), array $ thuộc tính array ())
Thông số

Thuộc tính tên của SELECT

Mảng các phần tử TÙY CHỌN (dưới dạng cặp 'giá trị' => 'Văn bản') sẽ được sử dụng trong phần tử CHỌN.

Lợi nhuận Phần tử SELECT được định dạng.
Sự miêu tả Trả về một phần tử SELECT được định dạng.

Các chức năng sau được sử dụng to generate button trên trang HTML.

Cú pháp

Nút (chuỗi $ title, mảng $ optionsarray ())

Thông số
  • Chú thích của nút. Không được mã hóa HTML tự động.

  • Mảng các tùy chọn và thuộc tính HTML

Lợi nhuận Thẻ nút HTML.
Sự miêu tả

Tạo ra một <button>nhãn. Thuộc tính type được mặc định làtype="submit". Bạn có thể thay đổi nó thành một giá trị khác bằng cách sử dụng$options['type'].

Các chức năng sau được sử dụng to generate checkbox trên trang HTML.

Cú pháp Hộp kiểm (string $ fieldName, array $ optionsarray ())
Thông số
  • Tên của một trường, như sau "Modelname.fieldname"

  • Mảng các thuộc tính HTML. Các tùy chọn có thể có là giá trị, được chọn, Trường ẩn, bị vô hiệu hóa, mặc định.

Lợi nhuận Một phần tử nhập văn bản HTML.
Sự miêu tả Tạo tiện ích đầu vào hộp kiểm.

Các chức năng sau được sử dụng to create form trên trang HTML.

Cú pháp tạo (hỗn hợp $ modelnull , mảng $ optionsarray () )
Thông số
  • Tên mô hình mà biểu mẫu đang được xác định. Nên bao gồm tên plugin cho các mô hình plugin. ví dụ: ContactManager.Contact. Nếu một mảng được truyền và đối số $ options trống, mảng sẽ được sử dụng làm tùy chọn. Nếu sai, không có mô hình nào được sử dụng.

  • Một mảng các thuộc tính và tùy chọn html. Các tùy chọn có thể có là loại, hành động, url, mặc định, gửi đi, kết quả đầu vào, mã hóa.

Lợi nhuận

Thẻ FORM mở được định dạng.

Sự miêu tả Trả về một phần tử HTML FORM.

Các chức năng sau đây được sử dụng để provide file uploading functionality trên trang HTML.

Cú pháp

tệp (string $ fieldName, array $ optionsarray ())

Thông số
  • Tên của một trường, ở dạng "Modelname.fieldname"

  • Mảng các thuộc tính HTML.

Lợi nhuận

Đầu vào tệp đã tạo.

Sự miêu tả

Tạo tiện ích đầu vào tệp.

Các hàm sau được sử dụng để tạo hidden element trên trang HTML.

Cú pháp

ẩn (string $ fieldName , array $ optionsarray () )

Thông số
  • Tên của một trường, ở dạng "Modelname.fieldname"

  • Mảng các thuộc tính HTML.

Lợi nhuận

Một đầu vào ẩn được tạo

Sự miêu tả

Tạo trường nhập ẩn

Các hàm sau được sử dụng để tạo input element trên trang HTML.

Cú pháp

Đầu vào (string $ fieldName, array $ options array ())

Thông số
  • Đây phải là "Modelname.fieldname"

  • Mỗi loại đầu vào có các tùy chọn khác nhau

Lợi nhuận

Tiện ích biểu mẫu đã hoàn thành

Sự miêu tả

Tạo phần tử đầu vào biểu mẫu hoàn chỉnh với nhãn và trình bao bọc div

Các hàm sau được sử dụng để tạo radio button trên trang HTML.

Cú pháp

Đài (chuỗi $ fieldName , mảng $ optionsarray () , mảng $ thuộc tínharray () )

Thông số
  • Tên của một trường, như sau "Modelname.fieldname"

  • Mảng tùy chọn nút radio.

  • Mảng các thuộc tính HTML và các thuộc tính đặc biệt ở trên.

Lợi nhuận Đã hoàn thành bộ tiện ích radio
Sự miêu tả Tạo một tập hợp các tiện ích radio. Sẽ tạo một chú giải và tập trường theo mặc định. Sử dụng tùy chọn $ để kiểm soát điều này.

Các hàm sau được sử dụng để tạo submit trên trang HTML.

Cú pháp Gửi (string $ caption null, array $ options array ())
Thông số
  • Nhãn xuất hiện trên nút HOẶC nếu chuỗi chứa: // hoặc phần mở rộng .jpg, .jpe, .jpeg, .gif, .png. Sử dụng hình ảnh nếu phần mở rộng tồn tại VÀ ký tự đầu tiên là /, hình ảnh có liên quan đến webroot, HOẶC nếu ký tự đầu tiên không phải là /, hình ảnh có liên quan đến webroot / img.

  • Mảng các tùy chọn. Các tùy chọn có thể có là div, before, after, type, v.v.

Lợi nhuận

Nút gửi HTML

Sự miêu tả Tạo phần tử nút gửi. Phương thức này sẽ tạo ra các phần tử <input /> có thể được sử dụng để gửi và đặt lại biểu mẫu bằng cách sử dụng $ options. Gửi hình ảnh có thể được tạo bằng cách cung cấp một đường dẫn hình ảnh cho $ caption.

Các chức năng sau được sử dụng to generate textarea element trên trang HTML.

Cú pháp

Textarea (string $ fieldName, array $ options array ())

Thông số
  • Tên của một trường, ở dạng "Modelname.fieldname"

  • Mảng các thuộc tính HTML, tùy chọn đặc biệt như thoát

Lợi nhuận Phần tử nhập văn bản HTML đã tạo
Sự miêu tả Tạo một widget textarea

Thí dụ

Thực hiện các thay đổi trong config/routes.php tệp như được hiển thị trong mã sau.

config/routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('register',['controller'=>'Registrations','action'=>'index']);
   $builder->fallbacks();
});

Tạo một RegistrationsController.php nộp tại

src/Controller/RegistrationsController.php. Sao chép mã sau vào tệp bộ điều khiển.

src/Controller/RegistrationsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   class RegistrationsController extends AppController{
      public function index(){
         $country = array('India','United State of America','United Kingdom');
         $this->set('country',$country);
         $gender = array('Male','Female');
         $this->set('gender',$gender);
      }
   }
?>

Tạo một thư mục Registrations tại src/Template và trong thư mục đó, hãy tạo một View tệp được gọi là index.php. Sao chép mã sau vào tệp đó.

src/Template/Registrations/index.php

<?php
   echo $this->Form->create(NULL,array('url'=>'/register'));
   echo '<label for="country">Country</label>';
   echo $this->Form->select('country',$country);
   echo '<label for="gender">Gender</label>';
   echo $this->Form->radio('gender ',$gender);
   echo '<label for="address">Address</label>';
   echo $this->Form->textarea('address');
   echo $this->Form->file('profilepic');
   echo '<div>'.$this->Form->checkbox('terms').
      '<label for="country">Terms ∓ Conditions</label></div>';
   echo $this->Form->button('Submit');
   echo $this->Form->end();
?>

Thực hiện ví dụ trên bằng cách truy cập URL sau:

http: // localhost / cakephp4 / đăng ký

Đầu ra

Sau khi thực hiện, bạn sẽ nhận được kết quả sau.