控制器:
session(['errors' => ['email' => ['The email is invalid.']]]);
return view('auth.login');
刀片:
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
错误:
在数组上调用成员函数has()
我在数组之前尝试过(object),返回view()-> with()等等! 但是我总是会收到这个错误!!
如果可能,我不想更改刀片文件!!无论如何,有没有以正确的方式从控制器发送数据?
答案 0 :(得分:3)
Validator返回的$ errors是Illuminate \ Support \ MessageBag的一个实例,而不是一个数组;
要复制用法,请执行以下操作: 在您的控制器中,您可以:
use Illuminate\Support\MessageBag;
// Create a new MessageBag instance in your method.
$errors = new MessageBag;
// Add new messages to the message bag.
$errors->add('email', 'The email is invalid.');
return view('auth.login', ['errors' => $errors]);
我认为您应该使用另一个变量名,例如$ customErrors,以确保将来可以根据需要使用view('auth.login')-> withErrors($ validator)。 https://laravel.com/docs/5.8/validation#working-with-error-messages