簡體   English   中英

Laravel 驗證不起作用

[英]laravel validation doesn't work

我正在參加 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'
        ]);
    }
}

網頁

@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

改變這一行:

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>

並在您的驗證中,如果您希望必須要求任何字段,則在驗證中添加 required

$this->validate($request, [
            'username' => 'required|min:5|max:30',
            'email' => 'required|email',
            'pass' => 'required|min:5',
            'pass2' => 'required|same:pass'
        ]);

您使用相同的名稱進行密碼和密碼確認。 更改密碼名稱以傳入您的刀片文件並嘗試使用此驗證

$this->validate($request, [
        'username' => 'required|min:5|max:30',
        'email' => 'required|max:255|unique:users',
        'pass' => 'required|min:6|confirmed'
    ]);

我看到您在驗證表單值后沒有返回任何路線。 所以,你能不能試試這個代碼格式。 驗證方法也在上層 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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM