How to validate form input data in laravel

Created at 02-Oct-2021 , By samar

How to validate form input data in laravel

With this article, we will examine several different instances of how to solve the "How to validate form input data in laravel".

You can validate form input data in laravel using validate() method in controller class and you can also validate form data by creating a form request in Laravel
  • Validate input data by creating form request

    Step 1. Create form request using CLI

    php artisan make:request StorePostRequest
    

    Step 2. Add validation rules to rules() method in created file

    app\Http\Requests\StorePostRequest.php

    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ];
    }
    

    Step 3. Make changes in your controller file

    ** app\Http\Controllers<YourController>.php **

    use App\Http\Requests\StorePostRequest;
    
    public function store(StorePostRequest $request)
    {
        $validated = $request->validated();
        dd($validated);
    }
    

    Method Illuminate\Http\Request::validated does not exist error occurres when you call validated method without creating form request. To call validated() method you have to first create a form request using the php artisan make:request StorePostRequest command. After the  execution of command a form request has been successfully created under App\Http\Requests folder. All the validation rules will be placed in your rules() method in your StorePostRequest.php file.

    You can call validated() method in laravel controller’s methods on $request and using this method you can get all validated input data in the array.

  • Validate form request using validate method on request

    --PATH app\Http\Controllers\<YourController>.php
    // Use before class definition
    use Illuminate\Http\Request;
    
    // Controller&rsquo;s method
    public function store(Request $request)
    {
    	$request->validate([
    	    'title' => 'required|unique:posts|max:10',
    	    'body' => 'required'
    	]);
    
    	// Validated
    }
    

    This method is used to validate form request using Illuminate\Http\Request object. If the validation fails it returns back to the user with the error response else keep executing the script.

  • Validate form request using Validator Facade

    --PATH app\Http\Controllers\<YourController>.php
    // Use before class definition
    use Illuminate\Support\Facades\Validator;
    
    // Controller's method
    public function store(Request $request)
    {
    	$validator = Validator::make($request->all(), [
    	    'title' => 'required|unique:posts|max:1',
    	    'body' => 'required|max:2',
    	]);
    
    	if($validator->fails()){
    	    return  redirect()->back()->withErrors($validator)->withInput();
    	}
    }
    

    You can create a validator instance manually using the Validator facade. Using this code snippet you can validate form requests manually using the make() method on Validator facade. If you want to know how to display validation errors in view file click here .

Related Queries

Back to code snippet queries related laravel

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Buy Me A Coffee

Don't forget to share this article! Help us spread the word by clicking the share button below.

We appreciate your support and are committed to providing you valuable and informative content.

We are thankful for your never ending support.