php-在字符串上调用成员函数all()(查看:

我正在尝试用Laravel request validation method创建登录页面

和凭证验证->如果用户未通过身份验证,则将返回“密码错误….”错误.

我看到两种不同情况下的错误:

1-当单击登录按钮而不填写任何内容时:-

htmlspecialchars() expects parameter 1 to be string, object given (View: C:\xampp\htdocs\nfbweb\resources\views\login.blade.php)

2-当填写随机/错误的用户名和密码时:

    ErrorException in f65ed669c524327dfe53b3286e027354370e4cf5.php line 13:
Call to a member function all() on string (View: C:\xampp\htdocs\nfbweb\resources\views\login.blade.php)

这是我的登录视图文件:

 <h1>Login Page</h1>
@if (session()->has('errors'))
    <div class="alert alert-danger">
        <ul>
            {{session('errors')}}
        </ul>
    </div>
@endif
@if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
<form action="{{route('dologin')}}" method="post">
    {{csrf_field()}}
    Username: <input type="text" name="username" autocomplete="off">
    <br>
    <br>
    Password:  <input type="password" name="password">
    <br>
    <button>Login</button>

</form>

这是我的登录控制器:

    public function doLogin(Request $request)
    {
        $this->validate($request, [
            'username' => 'required|max:255',
            'password' => 'required',
        ]);

        $client = new GuzzleHttp\Client(['base_uri' => 'https://domainname/api/v1/']);

        try {

            $response = $client->request('POST', 'login', [
                'form_params' => [
                    'username' => $request->username,
                    'password' => $request->password,

                ],
            ]);
        }
        catch (ClientException $exception) {
            return back()->with('errors', 'Invalid username and/or password');
        }

}

我在视图文件中删除了身份验证错误消息

 @if (session()->has('errors'))
    <div class="alert alert-danger">
        <ul>
            {{session('errors')}}
        </ul>
    </div>
@endif

laravel请求验证器工作正常.

当我在视图文件中删除了验证程序错误消息时,身份验证错误消息起作用了!

我在两个错误消息中都有冲突吗?

我怎样才能使它们都起作用

解决方法:

通过更改以下内容解决:-
会话(“错误”)到会话(“错误”)

laravel验证程序会话名称的名称存在冲突,并且我设置为返回身份验证错误消息的会话名称

上一篇:php-自定义验证错误参数


下一篇:java-播放2.3验证Json请求主体