Follower

2019年9月16日 星期一

【PHP】Laravel 驗證提示訊息

  本篇銜接「Laravel 簡易CRUD」,新增了驗證提示。白話說就是「填寫資料時不符合規定格式」的錯誤提示。這個問題在前篇附註的Youtube教學並沒有解決。我因為太無聊,上網survey一下,發現很多處理方式,大部分都是直接引入Validator後,在Controller直接處理。

  不過前篇是新增一個Request,把驗證的部分跟Controller切開來,為了保持寫作的延續性和流暢性,程式碼繼續沿用,並依照原架構去處理驗證提示。

  首先先看一下要怎麼使用$errors,官方給出的答案是:

官方對於$errors的說法

  所以我的理解是,$errors可以直接拿起來使用,配合first()可以回傳錯誤訊息。

Step 1. 修改create.blade.php


  新增錯誤提示,錯誤提示放在填寫欄位的下面,原因是因為使用者看上去會比較直觀。紅框是一個很簡單的if邏輯,自己看應該沒問題。

修改create.blade.php

Step 2. 修改edit.blade.php

  
  同上。
  
修改edit.blade.php

Step 3. 修改ArticleController的update function參數


  因為真正的修改功能是在update而不是edit function,所以不要忘了將ArticleRequest帶入update function,否則驗證無法處理。

修改參數

Step 4. 檢視成果


  沒問題,正確顯示錯誤訊息。

錯誤訊息顯示
  
  我們設定的Content的Request是必須輸入多於三個字,所以假若輸入的字寫於三個字,就會跳出此錯誤訊息。





  如果使用Validator,可以在其中設定錯誤訊息的顯示,但使用本篇的方法則無法自行設定錯誤訊息。我曾經嘗試過依照Laravel的語法邏輯,調用Request在Controller寫入自己的錯誤訊息〈Views的部分就不用修改〉,但都是失敗,所以想要嘗試的看倌,可以不用花時間去試了XD。

  參考資料:https://hackmd.io/@8irD0FCGSQqckvMnLpAmzw/HJ1LqggUQ?type=view

沒有留言:

張貼留言