Submitting Form Data and Validation in Laravel — a practical guide to Laravel form validation with clear examples you can reuse in real projects.
Laravel Tutorial Series (5/27). Prefer one page? Read the complete Laravel tutorial (all 27 topics).
Short description
Laravel makes form handling safe with CSRF tokens and powerful validation rules before you save data.
Blade form
<form method="POST" action="{{ route('posts.store') }}">
@csrf
<input type="text" name="title" value="{{ old('title') }}">
@error('title') <span>{{ $message }}</span> @enderror
<textarea name="body">{{ old('body') }}</textarea>
@error('body') <span>{{ $message }}</span> @enderror
<button type="submit">Save</button>
</form>
Validate in controller
public function store(Request $request)
{
$validated = $request->validate([
'title' => ['required', 'string', 'max:255'],
'body' => ['required', 'string', 'min:10'],
]);
Post::create($validated);
return redirect()->route('posts.index')->with('success', 'Post created');
}
Form Request class
php artisan make:request StorePostRequest
public function rules(): array
{
return [
'title' => ['required', 'max:255'],
'body' => ['required'],
];
}
public function store(StorePostRequest $request)
{
Post::create($request->validated());
return back()->with('success', 'Saved');
}