Method validate does not exist - Laravel 5.4

隐身守侯 提交于 2019-12-12 08:19:28

问题


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


回答1:


In docs said:

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

This string - works :)




回答2:


You should try this:

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

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

OR

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



回答3:


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

Try:

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



回答4:


Actually If you add the right controller, validate method should be already included. You can try adding below controller.

Instead: use App\Http\Controllers\Controller;




回答5:


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

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

Hope this works for you..




回答6:


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',
                  ]);
           }



回答7:


lets add these two packages Best of luck

use Illuminate\Support\Facades\Validator; use Illuminate\Foundation\Auth\RegistersUsers;



来源:https://stackoverflow.com/questions/45795508/method-validate-does-not-exist-laravel-5-4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!