Laravel: проверка - PullRequest
       4

Laravel: проверка

0 голосов
/ 30 апреля 2020

Я пытаюсь использовать валидатор laravel, но затем выдается сообщение об ошибке «Class 'App \ Http \ Controllers \ Validator' not found». Это действительно потому, что я должен сделать Класс Валидатора? Если это так, то как мне это сделать? Пожалуйста помоги. Вот мои коды.

web. php

<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
   return view('login');
});

Route::post('/home', 'loginController@doLogin');

loginController. php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class loginController extends Controller
{
  //
  public function doLogin(){
    $rules=array(
        'email' => 'required|email',
        'password' => 'required|alphaNum|min:3'
    );

    $validator=Validator::make(Input::all(), $rules);
    if($validator->fails()){
        return Redirect::to('login')
            ->withErrors($validator)
            ->withInput(Input::except('password'));
    }else{
        $userdata=array(
            'email' => Input::get('login-email'),
            'password' => Input::get('login-password')
        );
        return view('halamanUtama');
    }
  }

}

login.blade. php

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Login</title>

    <!--CSS-->
    <link rel="stylesheet" href="{{ asset('css/styles.css') }}" type="text/css">
 </head>
 <body>
   <div class="login-page-frame">
     <div class="header-login-page-frame">
        <h3>Login</h3>
     </div>
     <div class="inner-login-form-frame">
        <form method="post" action="./home" class="login-form">
            {{ csrf_field() }}
            <input type="text" placeholder="email" name="login-email">
            <br>
            <input type="password" placeholder="pass" name="login-password">
            <br>
            <button type="submit" class="btn-login">Log In</button>
        </form>
     </div>
   </div>
 </body>

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

использовать Validator вверху после пространства имен

use Validator;

Это действительно потому, что мне нужно создать класс Validator?

Нет, Validator - это фасад, вам нужно использовать его вверху, иначе это найдет в вашем классе контроллера. вот почему вы получаете 'App\Http\Controllers\Validator' не найдено

0 голосов
/ 30 апреля 2020

Для проверки формы вы можете использовать Запрос, вы можете сделать это для каждой формы и установить определенные c правила.

Дополнительная информация: "https://laravel.com/docs/7.x/validation#form -request-validation

Пример:

class StoreUserRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return Auth::check();
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
        ];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...