2014-12-19 44 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);