在字符串上调用成员函数all()(视图:

时间:2017-11-30 23:45:49

标签: php laravel validation laravel-5.3 laravel-blade

我正在尝试使用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请求验证工作正常。

当我在视图文件中删除验证器错误消息时,验证错误消息有效!

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

我怎样才能使它们都有效

1 个答案:

答案 0 :(得分:3)

通过更改以下内容解决: - 会话(&#39;错误&#39;)到会话(&#39;错误&#39;)

laravel验证程序会话名称的名称发生冲突,并且我设置的会话名称返回验证错误消息