$errors
是 laravel
在 response
中自動塞進去的一個屬性,就算你程式碼中沒有寫到,他還是會傳一個空的,其類型為
IlluminateSupportViewErrorBag
但其實只是用陣列來載 IlluminateSupportMessageBag
所以當你使用 $errors->first('email')
時,可以根據下面程式碼看出來
<code class="php">/** * Get the first message from the bag for a given key. * * @param string $key * @param string $format * @return string */ public function first($key = null, $format = null) { $messages = is_null($key) ? $this->all($format) : $this->get($key, $format); return count($messages) > 0 ? $messages[0] : ''; }</code>
有值就回傳,沒值就回傳空,所以才不會報錯
因為Laravel 5.2.27開始在每個頁面都加上了web中間件,自然不會報錯「$errors未定義」。
另外你直接在Views寫表單碼?不用點form擴充包嗎?