В Laravel можно достичь этого, используя возможности фасада Request и методов модели. Давайте рассмотрим пример с использованием модели "User" и формы для создания нового пользователя.
1. Создайте маршрут:
Route::post('/users/store', 'UserController@store');
2. В UserController создайте метод store:
public function store(Request $request) { $userData = $request->validate([ 'name' => 'required', 'email' => 'required|email', 'password' => 'required|min:6', ]); $userData['password'] = bcrypt($userData['password']); User::create($userData); return redirect('/users')->with('success', 'Пользователь успешно создан'); }
3. Создайте представление для формы создания нового пользователя (например, в resources/views/users/create.blade.php):
<form action="/users/store" method="POST"> @csrf <div> <label for="name">Имя</label> <input type="text" id="name" name="name"> </div> <div> <label for="email">E-mail</label> <input type="email" id="email" name="email"> </div> <div> <label for="password">Пароль</label> <input type="password" id="password" name="password"> </div> <button type="submit">Создать пользователя</button> </form>
4. В данном примере, в форме отображаются поля "name", "email" и "password". Однако, в контроллере мы изменяем данные перед сохранением в базу данных. Это происходит посредством присвоения значения 'password' с зашифрованным паролем с помощью функции bcrypt.
Таким образом, при заполнении формы и отправке данных, поле 'password' будет содержать зашифрованный пароль, который будет сохранен в базе данных через метод create модели User.