2013-07-01 74 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你是什麼意思,純平錯誤? –