2017-08-21 8 views
6

Ich habe ein sehr seltsames Problem. Wenn ich das Formular absende, wird bei der serverseitigen Überprüfung ein Fehler ausgegeben.Methode Validierung existiert nicht - Laravel 5.4

Hier ist meine einfache Steuerung:

namespace App\Http\Controllers; 

use Newsletter; 
use Illuminate\Http\Request; 

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

das Formular abgesendet haben, gibt mir:

BadMethodCallException Methode Validate existiert nicht.

sollte es funktionieren nach:

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

+0

Die verlinkte Seite hat keine Erwähnung eines '$ request-> validate'. es hat mehrere Erwähnungen von $ this- validate ($ Anfrage, ...) 'obwohl – apokryfos

+0

@apokryfos ja, ich fand auch, dass später, mein schlechtes. –

Antwort

14

In docs sagte:

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

Diese Saite - funktioniert :)

4

Nun bedeutet, seine nicht mehr in 5.4 es ist jedoch in der Steuerung

verfügbar 210

Versuchen:

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

Sie sollten dies versuchen:

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

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

ODER

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

Hoffnung diese Arbeit für Sie !!!!

+0

@Parth Vora: Froh zu helfen und wenn meine Antwort Ihre Lösung ist, dann akzeptieren Sie bitte meine Antwort .. –

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

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

Hope this für Sie ..

1

können Sie den Validator Service-Provider verwenden.

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

können diese beiden Pakete Best of luck

Verwendung Illuminate \ Support \ Fassaden \ Validator hinzufügen; Verwenden Sie Illuminate \ Foundation \ Auth \ RegistersUsers;

0

Eigentlich Wenn Sie den richtigen Controller hinzufügen, sollte die Validierungsmethode bereits enthalten sein. Sie können versuchen, unter Controller hinzuzufügen.

Statt: use App\Http\Controllers\Controller;

Verwandte Themen