2013-07-01 76 views
4

在Laravel 4中,如何设置默认消息格式为全部为错误消息整个该应用程序?Laravel 4:默认格式错误消息

我已经知道如何格式化一个单独的错误信息......

echo $messages->first('email', '<p>:message</p>'); 

...以及如何格式化多条错误消息...

foreach ($messages->all('<li>:message</li>') as $message) { 
    // 
} 

...但我d想知道如何(以及在​​哪里)为整个应用中的所有消息设置默认格式。

+0

你可以给你更多的细节,你真的想要做什么? –

+0

我有很多的视图文件。我不想在每个单个视图文件中设置错误消息的格式,但希望将它设置在一个地方。 – aquariuz

+0

你可以用语言文件that..read [这里](http://laravel.com/docs/validation#custom-error-messages) –

回答

0

没有测试,但根据API

MessageBag::setFormat('<li>:message</li>');

这意味着你还可以设置它(也许在你的BaseController):

$messages->setFormat('<li>:message</li>');

+0

但包含错误信息的“信息包”是不是在BaseController产品尚未推出。参见[文件](http://laravel.com/docs/validation#working-with-error-messages),第一款规定:“调用了一个验证实例的消息的方法后,您会收到一个MessageBag实例,... “ – aquariuz

+0

这就是'$ messages' - 我明白你的意思。那么可能需要先采取建议。 –

-2

如果你想让它通过了你的应用程序,然后您可以在运行命令后更改默认格式文件Illuminate/Support/MessageBag.php线22 php artisan optimize

/** 
* Default format for message output. 
* 
* @var string 
*/ 
protected $format = '<li>:message</li>'; 

注意如果运行作曲家更新/安装,你必须再次更改

如果你不想这样做,那么你可以使用seFormat()设置错误消息格式,这你必须在你所有的观点中做。例如 - 在你看来

$errors->setFormat('<li>:message</li>'); 
+4

我不喜欢改变'Illuminate/Support/MessageBag.php',因为在每次作曲家更新后,所做的更改都将被取消。这就是我现在最终解决的问题:我创建了'app/config/validation.php'并在那里设置了默认的错误消息格式。在每个视图文件中,我把'$ errors-> setFormat(Config :: get('validation.errorMessageFormat'));'。 – aquariuz

+0

这显然是错误的。 – coderama

+0

@coderama你是什么意思,纯平错误? –