CakePHP 表單處理

cakephp 表單處理

 

cakephp 提供了各種內(nèi)置標簽來輕松安全地處理 html 表單。與許多其他 php 框架一樣,html 的主要元素也是使用 cakephp 生成的。以下是用于生成 html 元素的各種函數(shù)。

以下函數(shù)用于 生成選擇選項:

語法 _selectoptions( array $elementsarray(), array $parentsarray(), boolean $showparentsnull, array $attributesarray() )
參數(shù)
  • 要格式化的元素
  • optgroup 的家長
  • 是否向父母展示
  • html 屬性
返回 數(shù)組
描述 返回一組格式化的 option/optgroup 元素

以下函數(shù)用于 生成html選擇元素。

語法 select( string $fieldname, array $options array(), array $attributes array() )
參數(shù)

select 的名稱屬性

要在 select 元素中使用的 option 元素的數(shù)組(作為 'value'=>'text' 對)。

返回 格式化的 select 元素。
描述 返回一個格式化的 select 元素。

以下函數(shù)用于 在html頁面上生成按鈕。

語法

button(string $title, array $optionsarray() )

參數(shù)
  • 按鈕的標題。不會自動進行 html 編碼。
  • 選項和 html 屬性數(shù)組
返回 html 按鈕標簽。
描述

創(chuàng)建一個 標簽。 type 屬性默認為 type="submit"。您可以使用 $options['type'] 將其更改為不同的值。

以下函數(shù)用于 在html頁面上生成復(fù)選框。

語法 checkbox(string $fieldname, array $optionsarray() )
參數(shù)
  • 字段名稱,例如"modelname.fieldname"
  • html 屬性數(shù)組??赡艿倪x項有 value、checked、hiddenfield、disabled、default。
返回 一個 html 文本輸入元素。
描述 創(chuàng)建一個復(fù)選框輸入小部件。

以下函數(shù)用于在 html 頁面上 創(chuàng)建表單。

語法 create(mixed $modelnull , array $optionsarray() )
參數(shù)
  • 為其定義表單的模型名稱。應(yīng)包括插件模型的插件名稱。例如contactmanager.contact。如果傳遞了一個數(shù)組并且 $options 參數(shù)為空,則該數(shù)組將用作選項。如果為 false,則不使用任何模型。
  • 一組 html 屬性和選項??赡艿倪x項有 type、action、url、default、onsubmit、inputdefaults、encoding。
返回

格式化的開始 form 標簽。

描述 返回一個 html form 元素。

以下函數(shù)用于在 html 頁面上 提供文件上傳功能。

語法

file(string $fieldname, array $optionsarray() )

參數(shù)
  • 字段名稱,格式為"modelname.fieldname"
  • html 屬性數(shù)組。
返回

生成的文件輸入。

描述

創(chuàng)建文件輸入小部件。

以下函數(shù)用于在 html 頁面上創(chuàng)建 隱藏元素。

語法

hidden( string $fieldname , array $optionsarray() )

參數(shù)
  • 字段名稱,格式為"modelname.fieldname"
  • html 屬性數(shù)組。
返回

生成的隱藏輸入

描述

創(chuàng)建一個隱藏的輸入字段

以下函數(shù)用于在 html 頁面上生成 input 元素。

語法

input(string $fieldname , array $options array() )

參數(shù)
  • 這應(yīng)該是"modelname.fieldname"
  • 每種類型的輸入都有不同的選項
返回

完成的表單小部件

描述

生成帶有標簽和包裝器 div 的表單輸入元素

以下函數(shù)用于在 html 頁面上生成 單選按鈕。

語法

radio(string $fieldname , array $optionsarray() , array $attributesarray() )

參數(shù)
  • 字段名稱,例如"modelname.fieldname"
  • 單選按鈕選項數(shù)組。
  • html 屬性數(shù)組,以及上面的特殊屬性。
返回 完成的收音機小部件集
描述 創(chuàng)建一組收音機小部件。默認情況下將創(chuàng)建圖例和字段集。使用 $options 來控制它。

以下函數(shù)用于在html頁面上生成 提交按鈕。

語法 submit(string $caption null, array $options array() )
參數(shù)
  • 出現(xiàn)在按鈕上的標簽,或者如果字符串包含 ://或擴展名 .jpg、.jpe、.jpeg、.gif、.png。如果擴展名存在,則使用圖像,并且第一個字符是/,圖像相對于 webroot,或者如果第一個字符不是/,圖像相對于 webroot/img。
  • 選項數(shù)組??赡艿倪x項有 div、before、after、type 等。
返回

一個 html 提交按鈕

描述 創(chuàng)建一個提交按鈕元素。此方法將生成可用于提交和使用 $options 重置表單的 元素??梢酝ㄟ^為 $caption 提供圖像路徑來創(chuàng)建圖像提交。

以下函數(shù)用于 在html頁面上生成textarea元素。

語法

textarea(string $fieldname , array $options array() )

參數(shù)
  • 字段名稱,格式為"modelname.fieldname"
  • html 屬性數(shù)組,特殊選項如轉(zhuǎn)義
返回 生成的 html 文本輸入元素
描述 創(chuàng)建一個 textarea 小部件

 

示例

在 config/routes.php 文件中進行更改,如以下代碼所示。

config/routes.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();
});

創(chuàng)建一個 registrationscontroller.php 文件

src/controller/registrationscontroller.php。 將以下代碼復(fù)制到控制器文件中。

src/controller/registrationscontroller.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 中創(chuàng)建一個 registrations 目錄,然后在該目錄下創(chuàng)建一個名為 index.php 的 view 文件。 在該文件中復(fù)制以下代碼。

src/template/registrations/index.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 '
'.$this->form->checkbox('terms'). '<label for="country">terms ? conditions</label>
'; echo $this->form->button('submit'); echo $this->form->end(); ?>

通過訪問以下 url 執(zhí)行上述示例:

http://localhost/cakephp4/register

 

輸出

執(zhí)行后,您將收到以下輸出。

下一節(jié):cakephp 國際化

cakephp 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频