Учебники

CakePHP — Обработка форм

CakePHP предоставляет различные встроенные теги для простой и безопасной обработки HTML-форм. Как и многие другие PHP-фреймворки, основные элементы HTML также генерируются с использованием CakePHP. Ниже приведены различные функции, используемые для генерации элементов HTML.

Следующие функции используются для генерации опций выбора.

Синтаксис _selectOptions (массив $ elements array (), массив $ parent array (), логическое $ showParents null, массив $ attribute array ())
параметры
  • Элементы для форматирования

  • Родители для OPTGROUP

  • Стоит ли показывать родителям

  • Атрибуты HTML

Возвращает массив
Описание Возвращает массив отформатированных элементов OPTION / OPTGROUP

Элементы для форматирования

Родители для OPTGROUP

Стоит ли показывать родителям

Атрибуты HTML

Следующие функции используются для генерации элемента выбора HTML .

Синтаксис select (строка $ fieldName, массив $ options array (), array $ attribute array ())
параметры

Имя атрибута SELECT

Массив элементов OPTION (в виде пар ‘value’ => ‘Text’) для использования в элементе SELECT

HTML-атрибуты элемента select.

Возвращает Отформатированный элемент SELECT
Описание Возвращает отформатированный элемент SELECT

Имя атрибута SELECT

Массив элементов OPTION (в виде пар ‘value’ => ‘Text’) для использования в элементе SELECT

HTML-атрибуты элемента select.

Следующие функции используются для создания кнопки на странице HTML.

Синтаксис Кнопка (строка $ title , array $ options array ())
параметры
  • Заголовок кнопки. Не кодируется автоматически в HTML.

  • Массив опций и атрибутов HTML.

Возвращает HTML-тег кнопки.
Описание Создает тег <button> . Атрибут type по умолчанию равен type = «submit «. Вы можете изменить его на другое значение, используя $ options [‘type’] .

Заголовок кнопки. Не кодируется автоматически в HTML.

Массив опций и атрибутов HTML.

Следующие функции используются для создания флажка на странице HTML.

Синтаксис Флажок (строка $ fieldName, массив $ options array ())
параметры
  • Имя поля, например «Modelname.fieldname»

  • Массив атрибутов HTML. Возможные варианты: значение, флажок, скрытое поле, отключено, значение по умолчанию.

Возвращает Элемент ввода текста HTML.
Описание Создает виджет ввода флажка.

Имя поля, например «Modelname.fieldname»

Массив атрибутов HTML. Возможные варианты: значение, флажок, скрытое поле, отключено, значение по умолчанию.

Следующие функции используются для создания формы на странице HTML.

Синтаксис создать (смешанный $ модель ноль, массив $ параметры array ())
параметры
  • Название модели, для которой определяется форма. Должен включать название плагина для моделей плагинов. например, ContactManager.Contact. Если массив передан, а аргумент $ options пуст, массив будет использоваться как опции. Если false, модель не используется.

  • Массив атрибутов и опций HTML. Возможные варианты: тип, действие, URL, по умолчанию, onsubmit, inputDefaults, кодировка

Возвращает Отформатированный открывающий тег FORM.
Описание Возвращает элемент HTML FORM.

Название модели, для которой определяется форма. Должен включать название плагина для моделей плагинов. например, ContactManager.Contact. Если массив передан, а аргумент $ options пуст, массив будет использоваться как опции. Если false, модель не используется.

Массив атрибутов и опций HTML. Возможные варианты: тип, действие, URL, по умолчанию, onsubmit, inputDefaults, кодировка

Следующие функции используются для обеспечения возможности загрузки файлов на HTML-странице.

Синтаксис файл (строка $ fieldName , массив $ options array ())
параметры
  • Имя поля, в форме «Modelname.fieldname»

  • Массив атрибутов HTML.

Возвращает Сгенерированный файл ввода.
Описание Создает виджет ввода файла.

Имя поля, в форме «Modelname.fieldname»

Массив атрибутов HTML.

Следующие функции используются для создания скрытого элемента на странице HTML.

Синтаксис скрытый (строка $ fieldName, массив $ options array ())
параметры
  • Имя поля в виде «Modelname.fieldname»

  • Массив атрибутов HTML.

Возвращает Сгенерированный скрытый вход
Описание Создает скрытое поле ввода

Имя поля в виде «Modelname.fieldname»

Массив атрибутов HTML.

Следующие функции используются для создания элемента ввода на странице HTML.

Синтаксис Ввод (строка $ fieldName, массив $ options array ())
параметры
  • Это должно быть «Modelname.fieldname»

  • Каждый тип ввода принимает разные параметры

Возвращает Заполненный виджет формы
Описание Создает элемент ввода формы с меткой и оберткой

Это должно быть «Modelname.fieldname»

Каждый тип ввода принимает разные параметры

Следующие функции используются для генерации переключателя на странице HTML.

Синтаксис Радио (строка $ fieldName , массив $ options array (), array $ attribute array ())
параметры
  • Имя поля, например «Modelname.fieldname»

  • Массив опций переключателей.

  • Массив атрибутов HTML и специальных атрибутов выше.

Возвращает Завершен набор радио виджетов
Описание Создает набор радио виджетов. Создает легенду и набор полей по умолчанию. Используйте $ options, чтобы контролировать это.

Имя поля, например «Modelname.fieldname»

Массив опций переключателей.

Массив атрибутов HTML и специальных атрибутов выше.

Следующие функции используются для генерации кнопки отправки на странице HTML.

Синтаксис Submit (строка $ caption null, массив $ options array ())
параметры
  • Метка, появляющаяся на кнопке ИЛИ, если строка содержит: // или расширение .jpg, .jpe, .jpeg, .gif, .png использовать изображение, если расширение существует, И первый символ — /, изображение относится к webroot , ИЛИ, если первый символ не /, изображение относительно webroot / img.

  • Массив опций. Возможные варианты: div, before, after, тип и т. Д.

Возвращает Кнопка отправки HTML
Описание Создает элемент кнопки отправки. Этот метод будет генерировать элементы <input />, которые можно использовать для отправки и сброса форм с помощью параметров $. Отправка изображений может быть создана путем указания пути к изображению для $ caption.

Метка, появляющаяся на кнопке ИЛИ, если строка содержит: // или расширение .jpg, .jpe, .jpeg, .gif, .png использовать изображение, если расширение существует, И первый символ — /, изображение относится к webroot , ИЛИ, если первый символ не /, изображение относительно webroot / img.

Массив опций. Возможные варианты: div, before, after, тип и т. Д.

Следующие функции используются для генерации элемента textarea на странице HTML.

Синтаксис Текстовое поле (строка $ fieldName, array $ options array ())
параметры
  • Имя поля, в форме «Modelname.fieldname»

  • Массив атрибутов HTML, специальная опция, например escape

Возвращает Сгенерированный элемент ввода текста HTML
Описание Создает виджет текстовой области

Имя поля, в форме «Modelname.fieldname»

Массив атрибутов HTML, специальная опция, например escape

пример

Внесите изменения в файл config / rout.php, как показано в следующем коде.

конфиг / routes.php

<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('register',['controller'=>'Registrations','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();

Создайте файл RegistrationController.php в каталоге src / Controller / RegistrationController.php . Скопируйте следующий код в файл контроллера.

SRC / Controller / RegistrationController.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 и в этом каталоге создайте файл View с именем index.ctp . Скопируйте следующий код в этот файл.

SRC / Template / зарегистрирования / index.ctp

<?php
   echo $this->Form->create("Registrations",array('url'=>'/register'));
   echo $this->Form->input('username');
   echo $this->Form->input('password');
   echo $this->Form->input('password');
   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 — http: // localhost: 85 / CakePHP / register

Выход

После выполнения вы получите следующий вывод.