- CakePHP 教程
- CakePHP - 首頁
- CakePHP - 概述
- CakePHP - 安裝
- CakePHP - 資料夾結構
- CakePHP - 專案配置
- CakePHP - 路由
- CakePHP - 控制器
- CakePHP - 檢視
- CakePHP - 擴充套件檢視
- CakePHP - 檢視元素
- CakePHP - 檢視事件
- CakePHP - 資料庫操作
- CakePHP - 檢視記錄
- CakePHP - 更新記錄
- CakePHP - 刪除記錄
- CakePHP - 服務
- CakePHP - 錯誤與異常處理
- CakePHP - 日誌記錄
- CakePHP - 表單處理
- CakePHP - 國際化
- CakePHP - 會話管理
- CakePHP - Cookie 管理
- CakePHP - 安全性
- CakePHP - 驗證
- CakePHP - 建立驗證器
- CakePHP - 分頁
- CakePHP - 日期和時間
- CakePHP - 檔案上傳
- CakePHP 有用資源
- CakePHP - 快速指南
- CakePHP - 有用資源
- CakePHP - 討論
CakePHP - 表單處理
CakePHP 提供各種內建標籤來輕鬆安全地處理 HTML 表單。像許多其他 PHP 框架一樣,HTML 的主要元素也是使用 CakePHP 生成的。以下是用於生成 HTML 元素的各種函式。
以下函式用於**生成下拉選項**:
| 語法 | _selectOptions( 陣列 $elementsarray(), 陣列 $parentsarray(), 布林值 $showParentsnull, 陣列 $attributesarray() ) |
|---|---|
| 引數 |
|
| 返回值 | 陣列 |
| 描述 | 返回格式化的 OPTION/OPTGROUP 元素陣列 |
以下函式用於**生成 HTML 下拉列表元素**。
| 語法 | select( 字串 $fieldName, 陣列 $options array(), 陣列 $attributes array() ) |
|---|---|
| 引數 | SELECT 元素的 name 屬性 要在 SELECT 元素中使用的 OPTION 元素陣列(作為 'value'=>'文字' 對)。 |
| 返回值 | 格式化的 SELECT 元素。 |
| 描述 | 返回格式化的 SELECT 元素。 |
以下函式用於在 HTML 頁面上**生成按鈕**。
| 語法 | Button(字串 $title, 陣列 $optionsarray() ) |
|---|---|
| 引數 |
|
| 返回值 | HTML 按鈕標籤。 |
| 描述 | 建立一個**<button>**標籤。type 屬性預設為**type="submit"**。您可以使用**$options['type']**將其更改為不同的值。 |
以下函式用於在 HTML 頁面上**生成複選框**。
| 語法 | Checkbox(字串 $fieldName, 陣列 $optionsarray() ) |
|---|---|
| 引數 |
|
| 返回值 | HTML 文字輸入元素。 |
| 描述 | 建立一個複選框輸入小部件。 |
以下函式用於在 HTML 頁面上**建立表單**。
| 語法 | create( 混合 $modelnull , 陣列 $optionsarray() ) |
|---|---|
| 引數 |
|
| 返回值 | 格式化的起始 FORM 標籤。 |
| 描述 | 返回一個 HTML FORM 元素。 |
以下函式用於在 HTML 頁面上**提供檔案上傳功能**。
| 語法 | file(字串 $fieldName, 陣列 $optionsarray() ) |
|---|---|
| 引數 |
|
| 返回值 | 生成的 file 輸入。 |
| 描述 | 建立檔案輸入小部件。 |
以下函式用於在 HTML 頁面上建立**隱藏元素**。
| 語法 | hidden( 字串 $fieldName , 陣列 $optionsarray() ) |
|---|---|
| 引數 |
|
| 返回值 | 生成的隱藏輸入 |
| 描述 | 建立一個隱藏輸入欄位 |
以下函式用於在 HTML 頁面上生成**輸入元素**。
| 語法 | Input(字串 $fieldName , 陣列 $options array() ) |
|---|---|
| 引數 |
|
| 返回值 | 完整的表單小部件 |
| 描述 | 生成一個完整的表單輸入元素,包括標籤和包裝 div |
以下函式用於在 HTML 頁面上生成**單選按鈕**。
| 語法 | Radio(字串 $fieldName , 陣列 $optionsarray() , 陣列 $attributesarray() ) |
|---|---|
| 引數 |
|
| 返回值 | 完整的單選小部件集 |
| 描述 | 建立一個單選小部件集。預設情況下將建立圖例和欄位集。使用 $options 控制這一點。 |
以下函式用於在 HTML 頁面上生成**提交**按鈕。
| 語法 | Submit(字串 $caption null, 陣列 $options array() ) |
|---|---|
| 引數 |
|
| 返回值 | HTML 提交按鈕 |
| 描述 | 建立一個提交按鈕元素。此方法將生成<input />元素,可用於提交和重置表單,方法是使用 $options。可以透過為 $caption 提供影像路徑來建立影像提交。 |
以下函式用於在 HTML 頁面上生成**文字區域元素**。
| 語法 | Textarea(字串 $fieldName , 陣列 $options array() ) |
|---|---|
| 引數 |
|
| 返回值 | 生成的 HTML 文字輸入元素 |
| 描述 | 建立一個文字區域小部件 |
示例
更改**config/routes.php**檔案中的內容,如下面的程式碼所示。
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();
});
在以下位置建立一個**RegistrationsController.php**檔案:
**src/Controller/RegistrationsController.php。** 將以下程式碼複製到控制器檔案中。
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);
}
}
?>
在**src/Template**中建立一個名為**Registrations**的目錄,並在該目錄下建立一個名為**index.php**的**檢視**檔案。將以下程式碼複製到該檔案中。
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();
?>
透過訪問以下 URL 來執行以上示例:
https:///cakephp4/register
輸出
執行後,您將收到以下輸出。