如何在相应的输入下显示输入验证错误?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (70)

目前,如果存在验证错误,它们都作为<li>元素中的<ul>元素打印在页面顶部。我想要这样做:如果The username field is required.在用户名输入下有错误,同样密码错误。

signIn查看:

<ul>
    @foreach ($errors->all() as $error)
        <li>{{$error}}</li>
    @endforeach
</ul>
<div class="wrapper">
    <form action='{{ route('signin') }}' method='POST'>
        <label>Username</label>
        <input class='input' type='text' name='username' placeholder='Username' value='{{ Request::old('username') }}'>

        <label>Password</label>
        <input class='input' type='password' name='password' placeholder='Password' value='{{ Request::old('password') }}'>

        {{ csrf_field() }}
        <button class='Submit' type='submit'>Log In</button>
    </form>
</div>

signIn功能:

public function signIn(Request $request){
        $this->validate($request, [
            'username' => 'required|max:120',
            'password' => 'required|min:5|max:12'
        ]);

        $username = $request['username'];
        $password = $request['password'];
        if (Auth::attempt(['username' => $username, 'password' => $password])){
            return redirect()->back();
        } else {
            return redirect()->back();
        }
    }
提问于
用户回答回答于

最佳方法是创建一个部分,这样你就不会重复相同的代码块,或者如果你想更新错误包含的内容,它就在一个地方。

views / partials中,使用以下HTML 创建invalid.blade.php

@if($errors->has($field))
    <span>{{ $errors->first($field) }}</span>
@endif

这将检查errors数组以确保存在特定字段的错误。first()方法从错误数组中获取该字段的第一个错误(某些字段可能有多个错误)。

现在,在任何输入字段下,只需添加以下行,将FIELD_NAME替换为你直接输入字段的名称(即:用户名)

@include(‘partials.invalid’, [‘field’ => ‘FIELD_NAME’)

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    27 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答
  • 富有想象力的人

    2 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券