Php Laravel 4的$errors结构
在Laravel 4中,每当每个请求都有一个变量Php Laravel 4的$errors结构,php,laravel,laravel-4,Php,Laravel,Laravel 4,在Laravel 4中,每当每个请求都有一个变量$errors来显示请求中发生的错误。它的结构如下: object(Illuminate\Support\MessageBag)#120 (2) { ["messages":protected]=> array(1) { ["email"]=> array(1) { [0]=> string(40) "The email must be a valid email address."
$errors
来显示请求中发生的错误。它的结构如下:
object(Illuminate\Support\MessageBag)#120 (2) {
["messages":protected]=>
array(1) {
["email"]=>
array(1) {
[0]=>
string(40) "The email must be a valid email address."
}
}
["format":protected]=>
string(8) ":message"
}
@if (count($errors->messages))
<div class="error-box">
<ul>
@foreach ($errors->messages as $error)
<li>{{{ $error }}}</li>
@endforeach
</ul>
</div>
@endif
@foreach ($errors->all() as $error)
<li>{{{ $error }}}</li>
@endforeach
我想我可以把这个代码放在我的应用程序的标题上,向用户提供输出,列出所有相关的消息,如下所示:
object(Illuminate\Support\MessageBag)#120 (2) {
["messages":protected]=>
array(1) {
["email"]=>
array(1) {
[0]=>
string(40) "The email must be a valid email address."
}
}
["format":protected]=>
string(8) ":message"
}
@if (count($errors->messages))
<div class="error-box">
<ul>
@foreach ($errors->messages as $error)
<li>{{{ $error }}}</li>
@endforeach
</ul>
</div>
@endif
@foreach ($errors->all() as $error)
<li>{{{ $error }}}</li>
@endforeach
@if(计数($errors->messages))
@foreach($errors->messages as$error)
- {{{$error}}
@endforeach
@恩迪夫
但很明显我无法访问这样的消息
有人能给我解释一下
MessageBar$errors
的结构吗?更重要的是,如何循环所有错误消息以显示它们?您不能直接执行$errors->messages
,因为illighted\Support\MessageBag
的messages属性为[“messages”:protected]
您需要做的是像这样使用all()
:
object(Illuminate\Support\MessageBag)#120 (2) {
["messages":protected]=>
array(1) {
["email"]=>
array(1) {
[0]=>
string(40) "The email must be a valid email address."
}
}
["format":protected]=>
string(8) ":message"
}
@if (count($errors->messages))
<div class="error-box">
<ul>
@foreach ($errors->messages as $error)
<li>{{{ $error }}}</li>
@endforeach
</ul>
</div>
@endif
@foreach ($errors->all() as $error)
<li>{{{ $error }}}</li>
@endforeach
您还可以在以下位置查看使用Laravel的MessageBag可以执行的方法的完整列表:
- Laravel 4.1:
- Laravel 4.2:
$errors->messages
,因为照明\Support\MessageBag
的messages属性为[“messages”:protected]
您需要做的是像这样使用all()
:
object(Illuminate\Support\MessageBag)#120 (2) {
["messages":protected]=>
array(1) {
["email"]=>
array(1) {
[0]=>
string(40) "The email must be a valid email address."
}
}
["format":protected]=>
string(8) ":message"
}
@if (count($errors->messages))
<div class="error-box">
<ul>
@foreach ($errors->messages as $error)
<li>{{{ $error }}}</li>
@endforeach
</ul>
</div>
@endif
@foreach ($errors->all() as $error)
<li>{{{ $error }}}</li>
@endforeach
您还可以在以下位置查看使用Laravel的MessageBag可以执行的方法的完整列表:
- Laravel 4.1:
- Laravel 4.2:
$errors->first();
因此,您可以只获得第一个错误,而不必循环所有错误。如果您想知道与特定组相关的特定错误(如电子邮件),您可以这样做
$errors->first('email');
除了@Unnawut的答案之外,您还可以访问如下错误
$errors->first();
因此,您可以只获得第一个错误,而不必循环所有错误。如果您想知道与特定组相关的特定错误(如电子邮件),您可以这样做
$errors->first('email');