2017-08-21 124 views
6

Mam bardzo dziwny problem. Kiedy wysyłam formularz, zgłaszany jest błąd z walidacją po stronie serwera.Metoda sprawdzania poprawności nie istnieje - Laravel 5.4

Oto mój prosty kontroler:

namespace App\Http\Controllers; 

use Newsletter; 
use Illuminate\Http\Request; 

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

Złożenie formularza daje mi:

BadMethodCallException Metoda validate nie istnieje.

powinien działać zgodnie z:

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

+0

połączona strona nie ma żadnej wzmianki o '$ request-> validate'. ma wiele wzmianek o '$ this-> validate ($ request, ...)' choć – apokryfos

+0

@apokryfos tak, również później okazało się, że moje złe. –

Odpowiedz

14

w Dokumentach powiedział:

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

Ten ciąg - działa :)

4

Cóż znaczy jego nie jest już dostępna w 5.4 jednak jest dostępny w kontrolerze

Spróbuj:

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

Należy spróbować tego:

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

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

LUB

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

Nadzieja ta praca dla ciebie !!!!

+0

@Parth Vora: Cieszę się, że mogę Ci pomóc, a jeśli moja odpowiedź jest Twoim rozwiązaniem, przyjmij moją odpowiedź .. –

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

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

Nadzieja to działa dla Ciebie ..

1

Można użyć usługodawcy 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', 
        ]); 
      } 
0

pozwala dodać te dwa pakiety Powodzenia

użycie Illuminate \ Support \ elewacje \ walidator; użyj Iluminuj \ Fundament \ Auth \ RegistersUsers;

0

Właściwie Jeśli dodasz odpowiedni kontroler, metoda sprawdzania poprawności powinna być już uwzględniona. Możesz spróbować dodać poniżej kontrolera.

Zamiast: use App\Http\Controllers\Controller;