Формы

Формы в CakePHP создаются через PHP-код. 

echo $this->Form->create('Post');
/* поля формы */
echo $this->Form->end('Редактировать');

В результате сгенерируется следующий HTML-код:

<form action="/posts/" id="PostIndexForm" method="post" accept-charset="utf-8">
    <div style="display:none;"><input type="hidden" name="_method" value="POST"></div>

    <div class="submit">
        <input type="submit" value="Редактировать">
    </div>

</form>

Создание формы через PHP-код нужно для формирования элементов форм на основе полей из базы данных, и поведение этих полей на основе настроек в модели (минимальное количество символов, обязательное поле и др).

Например, если нужно будет реализовать, чтобы поле не было пустым при отправке запроса, то достаточно будет добавить пункт в файле модели, и CakePHP будет возвращать ошибку, если в указанном поле не задано значение.

Выводится элемент формы через form->input():

echo $this->Form->input('name');

В результате сгенерируется следующее поле:

<div class="input text">
    <label for="PostName">Name</label>
    <input name="data[Post][name]" type="text" id="PostName">
</div>

Значение «name» — это имя поля из базы данных.

Тип элемента формы будет зависеть от типа поля в базе данных. Т.е., если поле «name» в базе данных имеет тип «TEXT», то сгенерируется элемент <textarea>.

Получить значение элемента формы в контроллере можно через свойство $this->request->data, где содержатся все POST-запросы.

if ($this->request->is('post')) {
    $name = $this->request->data['Post']['name'];
}

Bitrix CakePHP 2