## Содержание - [Открытие формы](#opening-a-form) - [CSRF защита](#csrf-protection) - [Ярлыки (labels)](#labels) - [Текст, текстовое поле, поле пароля и скрытые поля](#text) - [Checkboxes и Radio кнопки](#checkboxes-and-radio-buttons) - [Выпадающие списки](#drop-down-lists) - [Кнопки](#buttons) - [Пользовательские макросы](#custom-macros) > **Примечание:** Все данные в полях формы фильтруются методом HTML::entities. ## Открытие формы #### Открытие POST формы в текущем URL: echo Form::open(); #### Открытие формы с данным URI и указанием метода запроса: echo Form::open('user/profile', 'PUT'); #### Открытие POST формы в HTTPS: echo Form::open_secure('user/profile'); #### Установка HTML атрибутов формы: echo Form::open('user/profile', 'POST', array('class' => 'awesome')); #### Открытие формы для загрузки файлов: echo Form::open_for_files('users/profile'); #### Открытие формы для загрузки файлов в HTTPS: echo Form::open_secure_for_files('users/profile'); #### Закрытие формы: echo Form::close(); ## CSRF защита Laravel обеспечивает простой способ защиты приложения от межсайтовой подделки запроса. Во-первых, случайный токен помещается в ваш сеанс пользователя. Не переживайте, это делается автоматически. Затем, используется токен метод для создания скрытого поля ввода формы, содержащего случайный токен на форме: #### Генерация скрытого поля со случайным CSRF токеном: echo Form::token(); #### Присоединение CSRF фильтра к маршруту: Route::post('profile', array('before' => 'csrf', function() { // })); #### Получение строки CSRF токена: $token = Session::token(); > **Примечание:** Для использования CSRF защиты активируйте поддержку сессий (просто в **application/config/session.php** включите **Session Driver**). Заметьте, что драйвер 'cookie' включен по умолчанию. Вообще, работа с CSRF включена по умолчанию и требует минимального вмешательства. *Рекомендуется прочитать:* - [Фильтры маршрутов](/docs/v3/routing#filters) - [Cross-Site Request Forgery](http://en.wikipedia.org/wiki/Cross-site_request_forgery) ## Ярлыки (labels) #### Генерация ярлыка: echo Form::label('email', 'E-Mail Address'); #### Установка HTML атрибутов: echo Form::label('email', 'E-Mail Address', array('class' => 'awesome')); > **Примечание:** После создания ярлыка любой элемент формы с таким же именем автоматически получит такой же атрибут ID. ## Текст, текстовое поле, поле пароля и скрытые поля #### Генерация текстового элемента ввода: echo Form::text('username'); #### Генерация текстового элемента ввода со значением по умолчанию: echo Form::text('email', 'example@gmail.com'); > **Примечание:** *hidden*(скрытый) и *textarea* методы имеют аналогичные методу *text* сигнатуры. Получите три метода по цене одного!! #### Генерация элемента ввода пароля: echo Form::password('password'); ## Checkboxes и Radio кнопки #### Генерация checkbox: echo Form::checkbox('name', 'value'); #### Генерация checkbox со значением по умолчанию: echo Form::checkbox('name', 'value', true); > **Note:** Метод *radio* имеет такую же сигнатуру, как и метод *checkbox*. Два в одном! ## Выпадающие списки #### Генерация выпадающего списка из массива элементов: echo Form::select('size', array('L' => 'Large', 'S' => 'Small')); #### Генерация выпадающего списка из массива элементов с применением значения по умолчанию: echo Form::select('size', array('L' => 'Large', 'S' => 'Small'), 'S'); ## Кнопки #### Генерация submit кнопки: echo Form::submit('Click Me!'); > **Примечание:** Если вам нужен **button** 'элемент, используйте метод button, он имеет такую же сигнатуру. ## Пользовательские макросы Пользовательские макросы легко объявляются при помощи хелпера "macros". Как всегда, сначала регистрируете макрос при помощи закрытой функции, затем просто вызываете его по имени. #### Регистрация макроса формы: Form::macro('my_field', function() { return ''; }); И теперь вызов по имени: #### Вызов макроса формы: echo Form::my_field();