我正在尝试用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验证程序会话名称的名称存在冲突,并且我设置为返回身份验证错误消息的会话名称