【问题标题】:Call to a member function all() on string (View:调用字符串上的成员函数 all()(查看:
【发布时间】:2018-05-15 00:48:42
【问题描述】:

我正在尝试使用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 请求验证器运行良好。

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

我在两个错误消息中是否有任何冲突?

我怎样才能让它们都工作

【问题讨论】:

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


    【解决方案1】:

    通过更改以下内容解决了:- session('errors') 到 session('error')

    laravel 验证器会话名称的名称冲突,我设置的会话名称返回身份验证错误消息

    【讨论】:

    • 我也有同样的问题。如果你使用 with ->with('errors', 'your message');它与验证错误相冲突。 laravel.com/docs/5.6/…
    猜你喜欢
    • 2016-05-10
    • 2018-08-26
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多