首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在其对应的输入下显示输入验证错误?

如何在其对应的输入下显示输入验证错误?
EN

Stack Overflow用户
提问于 2018-07-27 08:44:01
回答 1查看 51关注 0票数 1

目前,如果存在验证错误,它们都会作为<ul>元素中的<li>元素显示在页面顶部。我想这样,如果有一个The username field is required.错误,让它在用户名下输入,同样的,对于密码错误。我该怎么做?

signIn视图:

代码语言:javascript
复制
<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函数:

代码语言:javascript
复制
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();
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 09:35:36

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

views/partials,中使用以下超文本标记语言创建invalid.blade.php

代码语言:javascript
复制
@if($errors->has($field))
    <span>{{ $errors->first($field) }}</span>
@endif

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

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

代码语言:javascript
复制
@include('partials.invalid', ['field' => 'FIELD_NAME')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51549266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档