This example shows a controller method that validates user input for name and email. If validation fails, Laravel automatically redirects back with errors. The Blade view displays errors next to each field and also lists all errors at the bottom.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|min:3',
'email' => 'required|email',
]);
// Save user or other logic here
return redirect()->back()->with('success', 'User saved!');
}
}
// Blade view snippet (resources/views/user_form.blade.php):
/*
<form method="POST" action="{{ route('user.store') }}">
@csrf
<label for="name">Name:</label>
<input type="text" id="name" name="name" value="{{ old('name') }}">
@error('name')
<div class="error">{{ $message }}</div>
@enderror
<label for="email">Email:</label>
<input type="email" id="email" name="email" value="{{ old('email') }}">
@error('email')
<div class="error">{{ $message }}</div>
@enderror
<button type="submit">Submit</button>
</form>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
*/