Laravel - Формы: Путеводитель для начинающих
Здравствуйте, стремящиеся к знаниям разработчики! Как преподаватель компьютерных наук с многолетним опытом, я с радостью провожу вас через захватывающий мир форм Laravel. Не волнуйтесь, если вы новички в программировании – мы начнем с азов и будем подниматься постепенно. К концу этого руководства вы будете создавать формы как профи!
Что такое формы Laravel?
Прежде чем погружаться в код, давайте поймем, что такое формы Laravel. Представьте, что вы заполняете онлайн-заявку на работу – это форма! В веб-разработке формы являются тем, как мы собираем информацию от пользователей. Laravel, наш дружественный фреймворк PHP, делает создание и обработку этих форм breeze.
Почему использовать Laravel для форм?
Вы можете задаваться вопросом: "Почему Laravel?" Ну, позвольте мне рассказать вам一个小 историю. В те времена, когда я был молодым разработчиком (да,那时候 на Земле водились динозавры), создание форм было утомительным процессом. Но Laravel появился как супергерой, делая нашу жизнь намного проще своими мощными инструментами и функциями безопасности.
Начнем
Во-первых, убедитесь, что у вас установлен Laravel на вашей системе. Если у вас еще нет, не волнуйтесь! Просто следуйте официальному руководству по установке Laravel, и вы быстро все настроите.
Пример 1: Создание простого контактного формуляра
Давайте начнем с простого контактного формуляра. Мы создадим форму, которая asks за имя, email и сообщение.
Шаг 1: Создание маршрута
Откройте ваш файл web.php
в папке routes
и добавьте эту строку:
Route::get('/contact', 'ContactController@showForm');
Это tells Laravel показывать нашу контактную форму, когда кто-то посещает URL '/contact'.
Шаг 2: Создание контроллера
Выполните эту команду в вашем терминале:
php artisan make:controller ContactController
Теперь откройте только что созданный файл ContactController.php
и добавьте этот метод:
public function showForm()
{
return view('contact');
}
Этот метод вернет наш вид контактной формы.
Шаг 3: Создание вида
Создайте новый файл под названием contact.blade.php
в папке resources/views
и добавьте этот код:
<form action="/submit-contact" method="POST">
@csrf
<div>
<label for="name">Имя:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="message">Сообщение:</label>
<textarea id="message" name="message" required></textarea>
</div>
<button type="submit">Отправить</button>
</form>
Разберем это:
-
@csrf
это директива Laravel, которая добавляет скрытый токен для предотвращения атак Cross-Site Request Forgery. Представьте это как secret handshake между вашей формой и Laravel. - Мы создали поля ввода для имени, email и текстовую область для сообщения.
- Атрибут
required
обеспечивает, чтобы пользователи заполняли все поля перед отправкой.
Шаг 4: Обработка отправки формы
Добавьте новый маршрут в web.php
:
Route::post('/submit-contact', 'ContactController@submitForm');
Затем добавьте этот метод в ваш ContactController
:
public function submitForm(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email',
'message' => 'required',
]);
// Обработайте данные формы (например, сохраните в базу данных, отправьте email)
return redirect('/contact')->with('success', 'Спасибо за ваше сообщение!');
}
Этот метод validates данные формы и перенаправляет обратно на страницу контакта с сообщением об успехе.
Пример 2: Создание формы регистрации
Теперь, когда мы разогрелись, давайте создадим более сложную форму регистрации.
Шаг 1: Создание маршрута
Добавьте это в ваш web.php
:
Route::get('/register', 'RegisterController@showForm');
Route::post('/register', 'RegisterController@register');
Шаг 2: Создание контроллера
Выполните:
php artisan make:controller RegisterController
Добавьте эти методы в RegisterController
:
public function showForm()
{
return view('register');
}
public function register(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed',
'date_of_birth' => 'required|date',
'gender' => 'required|in:male,female,other',
]);
// Логика создания пользователя здесь
return redirect('/register')->with('success', 'Регистрация успешна!');
}
Шаг 3: Создание вида
Создайте register.blade.php
в вашей папке views:
<form action="/register" method="POST">
@csrf
<div>
<label for="name">Имя:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="password">Пароль:</label>
<input type="password" id="password" name="password" required>
</div>
<div>
<label for="password_confirmation">Подтвердите пароль:</label>
<input type="password" id="password_confirmation" name="password_confirmation" required>
</div>
<div>
<label for="date_of_birth">Дата рождения:</label>
<input type="date" id="date_of_birth" name="date_of_birth" required>
</div>
<div>
<label>Пол:</label>
<input type="radio" id="male" name="gender" value="male" required>
<label for="male">Мужской</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Женский</label>
<input type="radio" id="other" name="gender" value="other">
<label for="other">Другое</label>
</div>
<button type="submit">Зарегистрироваться</button>
</form>
Эта форма включает различные типы ввода: текст, email, пароль, дата и radio buttons.
Методы��ки
Вот таблица.common Laravel методов��ки:
Метод | Описание |
---|---|
required | Поле не должно быть пустым |
Должно быть valid email адрес | |
max:value | Максимальная длина |
min:value | Минимальная длина |
unique:table | Должно быть уникальным в specified database table |
confirmed | Должно соответствовать matching field (например, password_confirmation) |
date | Должно быть valid date |
in:foo,bar,... | Должно быть одно из listed значений |
Заключение
Поздравляю! Вы только что создали две формы Laravel и научились их обрабатывать. Помните, что практика делает perfect, так что продолжайте экспериментировать с различными типами форм и правилами��ки.
Заканчивая, позвольте мне поделиться быстрой историей. У меня был один студент, который боялся форм – он думал, что они сложные и神秘的ные. Но после нескольких уроков он создавал формы для fun! Это и есть красота Laravel – он делает сложное приятным.
Продолжайте программировать, stay curious, и не бойтесь задавать вопросы. Счастливого создания форм!
Credits: Image by storyset