【问题标题】:Laravel 4: default format error messagesLaravel 4:默认格式错误消息
【发布时间】:2013-06-28 12:19:32
【问题描述】:

在 Laravel 4 中,如何设置应用程序 all 错误消息的默认消息格式整个

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

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

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

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

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

【问题讨论】:

  • 你能详细说明你真正想要做什么吗?
  • 我有很多视图文件。我不想在每个视图文件中设置错误消息的格式,但想在一个地方设置。
  • 您可以为此使用语言文件..read here
  • 语言文件用于实际的错误消息,而不是消息的格式,例如&lt;p&gt;:message&lt;/p&gt;&lt;li&gt;:message&lt;/li&gt;
  • 你可以使用 setFormat($format = '
  • :message
  • ')

标签: laravel laravel-4


【解决方案1】:

如果您希望它通过您的应用程序,那么您可以在运行命令 php artisan optimize 之后更改文件 Illuminate/Support/MessageBag.php 第 22 行中的默认格式

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

注意如果你运行 composer update/install,你必须再次更改它

如果您不想这样做,那么您可以使用 seFormat() 设置错误消息格式,您必须在所有视图中执行此操作。例如——在你看来

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

【讨论】:

  • 我不喜欢更改Illuminate/Support/MessageBag.php,因为每次作曲家更新后更改都会撤消。这就是我现在最终解决它的方法:我创建了app/config/validation.php 并在那里设置了默认的错误消息格式。在每个视图文件中,我输入了$errors-&gt;setFormat(Config::get('validation.errorMessageFormat'));
  • 你永远不会编辑被拉进来的东西的源代码。这是不好的做法和肉体的罪恶。
  • 或者,如果您确实需要,请为该项目做出贡献,以便每个人都可以从中受益。
  • 我已经在我的回答中明确提到过如果您运行 composer update/install,您必须再次更改它这是以防万一用户迫切需要这样做.代码没有错
【解决方案2】:

未测试,但根据API

MessageBag::setFormat('&lt;li&gt;:message&lt;/li&gt;');

这意味着您也可以设置它(可能在您的 BaseController 中):

$messages-&gt;setFormat('&lt;li&gt;:message&lt;/li&gt;');

【讨论】:

  • 但是 BaseController 中还没有包含错误消息的“消息包”。参见documentation,第一段:“在Validator 实例上调用messages 方法后,您将收到一个MessageBag 实例,...”
  • 那是给$messages的——我明白你的意思了。那么可能需要求助于第一个建议。
猜你喜欢
相关资源
最近更新 更多
热门标签