web-dev-qa-db-fra.com

La méthode validate n'existe pas - Laravel 5.4

J'ai un problème très étrange. Lorsque je soumets le formulaire, une erreur de validation côté serveur est générée.

Voici mon contrôleur simple:

namespace App\Http\Controllers;

use Newsletter;
use Illuminate\Http\Request;

class SubscriptionController extends Controller
{
    public function subscribe(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            ]);
    }
}

La soumission du formulaire me donne:

BadMethodCallException La méthode validate n'existe pas.

cela devrait fonctionner selon:

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

14
Parth Vora

Dans docs dit:

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

Cette chaîne - fonctionne :)

31
arku

Vous devriez essayer ceci:

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

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

OU

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

Eh bien, cela signifie qu’il n’est plus disponible dans la version 5.4, mais qu’il est disponible dans le contrôleur

Essayer:

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

En fait, si vous ajoutez le bon contrôleur, la méthode validate devrait déjà être incluse. Vous pouvez essayer d'ajouter ci-dessous contrôleur.

Au lieu: use App\Http\Controllers\Controller;

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

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

J'espère que ça marche pour vous ..

3
Vijay Trada

Vous pouvez utiliser le fournisseur de services Validator.

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