【问题标题】:What is colon:message `:message` in form什么是冒号:消息 `:message` 形式
【发布时间】:2014-12-19 15:35:32
【问题描述】:

我想了解更多关于 :message 的工作原理。我在官方文档中看到了如何使用它,但我不明白该值的设置位置以及它如何成为每个输入的唯一变量。我在 API 中也找不到。

 <div class="form-group {{ $errors->has('first_name') ? 'has-error' : '' }}">
    <label for="first_name">First Name</label>
    <input type="text" class="form-control" id="first_name">
  {{ $errors->first('first_name', '<p class="help-block">:message</p>') }}
</div>

在哪里可以找到有关:message 的更多信息。 : 是什么意思等等?我不能谷歌它。所以我希望有人可以指导我参考。

【问题讨论】:

标签: html forms laravel


【解决方案1】:

作为第二个参数传递给first() 的是错误消息的格式。如 cmets 中所述,:message 部分将替换为实际的错误消息。

这一切都发生在MessageBag class内部

您致电first()。在函数$this-&gt;get() 内部被调用

$messages = is_null($key) ? $this->all($format) : $this->get($key, $format);

在 get 内部,它会检查是否有传递密钥的消息,如果是肯定的,$this-&gt;transform() 将被调用

if (array_key_exists($key, $this->messages))
{
    return $this->transform($this->messages[$key], $format, $key);
}

现在它终于变得有趣了。在transform中,关键字:message:key会被替换为实际的消息和实际的key($format是你在开头传入的字符串'&lt;p class="help-block"&gt;:message&lt;/p&gt;'

$replace = array(':message', ':key');

$message = str_replace($replace, array($message, $messageKey), $format);

【讨论】:

    猜你喜欢
    • 2012-09-25
    • 2019-09-14
    • 2012-10-09
    • 1970-01-01
    • 2011-03-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    相关资源
    最近更新 更多