проверка ларавеллы не работает - PullRequest
0 голосов
/ 08 мая 2018

Я прохожу курс laravel и, чтобы пройти курс, мне нужно исправить эту проблему, я проверил все, и, видимо, все так же, как парень показывает мне.Но разница в том, что его проверка работает, но не моя.Он должен перенаправить меня к register_form, когда проверка недействительна, но это не так.

Маршрут

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

Route::get('/register', 'HomeController@register_form');

Route::post('/register', 'HomeController@register');

Контроллер

namespace CoolBlog\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller {

    public function register_form(){
        return view('register');
    }

    public function register(Request $request) {
        $this->validate($request, [
            'username' => 'min:5|max:30',
            'email' => 'email',
            'pass' => 'min:5',
            'pass2' => 'same:pass'
        ]);
    }
}

HTML-страница

@extends('layout.default')

@section('title', 'Registration')

@section('content')
    <form method="post" action="/register" >
        {{csrf_field()}}
        Name: <input type="text" name="username"><br>
        E-mail: <input type="text" name="email"><br>
        Password: <input type="password" name="pass2"><br>
        Re-Password: <input type="password" name="pass2"><br>
        <input type="submit" value="Register">
    </form>

@endsection

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Вы используете одно и то же имя для пароля и подтверждения пароля. Измените имя пароля, чтобы передать его в свой блейд-файл, и попробуйте использовать эту проверку вместо

$this->validate($request, [
        'username' => 'required|min:5|max:30',
        'email' => 'required|max:255|unique:users',
        'pass' => 'required|min:6|confirmed'
    ]);
0 голосов
/ 08 мая 2018

Я видел, что вы не возвращаетесь ни к какому маршруту после проверки значений формы. Итак, не могли бы вы попробовать этот формат кода. метод проверки также обновляется в версиях верхнего уровня laravel

function store(Request $request)
    {
        request()->validate([
            'title' => 'required',
            'body' => 'required',
        ]);
        Post::create($request->all());
        return redirect()->route('posts.index')->with('success', 'Post created successfully');
0 голосов
/ 08 мая 2018

Измените эту строку

Password: <input type="password" name="pass2"><br>
Re-Password: <input type="password" name="pass2"><br>

и замените ее на эту

Password: <input type="password" name="pass"><br>
Re-Password: <input type="password" name="pass2"><br>

, и в вашей проверке, если вы хотите, чтобы любое поле было обязательным, добавьте require в проверке

$this->validate($request, [
            'username' => 'require|min:5|max:30',
            'email' => 'require|email',
            'pass' => 'require|min:5',
            'pass2' => 'require|same:pass'
        ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...