Method validate does not exist - Laravel 5.4

73,767

Solution 1

In docs said:

$this->validate($request, [
    'email' => 'required|email',
]);

This string - works :)

Solution 2

You should try this:

$validateFields = array('email' => 'required|email');

$this->validate($request, $validateFields);

OR

$this->validate($request, [
    'email' => 'required|email'
]);

Solution 3

Well means its no longer available in 5.4 however its available in controller

Try:

 $this->validate($request, [
    'email' => 'required|email',
 ]);

Solution 4

        $validator = \Validator::make($request->all(), [
            'mobile_number' => 'required',]);

        if ($validator->fails()) {
            return redirect()->back()
            ->withErrors($validator)
            ->withInput();
        }

Hope this works for you..

Solution 5

You can use the Validator service provider.

     namespace App\Http\Controllers;

     use Newsletter;
     use Illuminate\Http\Request;
     use Validator;

     class SubscriptionController extends Controller
     {
          public function subscribe(Request $request)
          {
                   $request->validate($request->all(),[
                     'email' => 'required|email',
                  ]);
           }
Share:
73,767
Parth Vora
Author by

Parth Vora

Updated on July 12, 2022

Comments

  • Parth Vora
    Parth Vora almost 2 years

    I have a very weird problem. When I'm submitting the form, it throws an error with server-side validation.

    Here is my simple controller:

    namespace App\Http\Controllers;
    
    use Newsletter;
    use Illuminate\Http\Request;
    
    class SubscriptionController extends Controller
    {
        public function subscribe(Request $request)
        {
            $request->validate([
                'email' => 'required|email',
                ]);
        }
    }
    

    Submitting the form gives me:

    BadMethodCallException Method validate does not exist.

    it should work according to:

    https://laravel.com/docs/5.4/validation