2014-12-19 45 views
1

我想知道更多关于消息是如何工作的。我在官方文档中看到如何使用它,但我不明白该值的设置以及它如何成为每个输入的唯一变量。我不能在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的更多信息。 :意味着什么等等?我无法谷歌它。所以我希望有人能指引我参考。

+0

其实我觉得它只是一个替代品。准备好的陈述式 – kero

+1

@kingkero OP *可能*在https://github.com/adamwathan/bootforms/blob/master/readme.md - 最有可能*处找到了。和/或http://mocksource.com/copy_ApplicationCode/app/storage/views/7332aac3077d08b09b944c4770f8d3a1 - 似乎与Laravel有关。 –

+0

是的,我正在与Laravel合作。我会更新标签。 – Phil

回答

0

作为第二个参数传递给first()的是错误消息的格式。正如评论中所述,:message部分被实际的错误信息取代。

这一切都发生在MessageBag class

你叫first()内。里面的功能$this->get()被调用

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

里面得到它会检查是否有用于传递密钥的消息,如果积极$this->transform()将被称为

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

现在,它终于开始变得有趣起来。在transform,关键字:message:key会与实际信息和实际的密钥进行更换($format是你一开始'<p class="help-block">:message</p>'传入的字符串)

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

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