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

Answers 3
  • 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);
    }
    
    0

    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
    }
    
    0

    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();
    	}
    }
    
    0

    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 .

  • Back to code snippet queries related laravel

Related queries helps you to understand and may also used for implementation of current code snippet