Laravel validate方法不会阻止用户进行验证

vojdkbi0  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(123)

我没有任何错误,客户端或服务器上也没有。为了给予你更多的上下文,我正在创建一个登录表单,我试图阻止用户在输入字段中键入的文本正确时对自己进行身份验证。如果不正确,用户不应该被重定向到路径(名称为“authenticate”)。有3个路径:登录和主页,这是页面,并验证,这是重定向到一个控制器,它得到了所有与登录有关的功能。
验证控制器

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class AuthController extends Controller
{
    public function login() {
        return view('auth.login');
    }

    public function authenticate(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'password' => 'required'
        ]);
    }
}

登录视图

<form action="{{ route('authenticate') }}" method="post">
          @csrf

          <input type="email" name="email">
          <input type="password" name="password">
          <button class="submit">Log</button>
        </form>

所有路线

Route::get('home', HomeController::class)
    ->name('home');

Route::get('login', [AuthController::class, 'login'])
    ->name('login');

Route::get('authenticate', [AuthController::class, 'authenticate'])
    ->name('authenticate');

所以基本上我要做的是检查用户在email字段中输入的文本是否是email,以及是否所有字段都有文本,因为所有字段都是必填的。但似乎不是这样,即使字段为空,登录按钮也会重定向到验证页面。我做错了什么吗?如果我没有提供足够的信息,我很乐意提供更多信息,谢谢阅读:)祝你有愉快的一天

mspsb9vt

mspsb9vt1#

将必填字段添加到输入标记

hwazgwia

hwazgwia2#

@if(Session::has('success'))
    <div class="alert alert-success alert-dismissible">
    {{Session::get('success')}}
    </div>
@elseif(Session::has('failed'))
    <div class="alert alert-danger alert-dismissible">
    {{Session::get('failed')}}
    </div>
@endif
    <div class="form-group">
    <label for="email" class="form-label">Email</label>
    <input type="email" name="email" class="form-control" value="{{old('email')}}" required />
    {!!$errors->first("email", "<span class='text-danger'>:message</span>")!!}
</div>

试试这个...

相关问题