Laravel unique驗證 排除當前記錄

moxiaomo發表於2020-12-04
這是我第一篇在社群的博文,之前都是在部落格園的,不過也好久沒寫博文了,也懶得搬了。反正我寫博文的目的主要還是想當個記事本啥的,以後用到了這個技術,有啥不會的地方,能有個地方回去翻看一下就好,也不貪圖哪些虛名啥的(關注量、瀏覽量等),所以也就不去搬運了。廢話就到此結束吧……

Laravel的unique驗證規則相信各位大佬都應該不陌生吧。就是用來驗證資料庫某一個欄位的唯一性的。

常規用法[unique: table, column]

但是今天碰到了這麼一個業務場景,就是更新某一條資料,保證name欄位唯一性。但是更新的時候name欄位並沒有更新,而是更新了其他的欄位(如mobile),這時候前端傳過來的name的值還是原來的,但此時使用了上面的驗證方法的話就會報錯。

在我翻看了大量資料(百度)之後,發現它還有幾個引數我們都忽略了。

Laravel unique驗證 排除當前記錄

這是laravel5.5的文件截圖。後面還有except和idColumn,這不是正好滿足的我的需求嗎(忽略某一行資料),真是太棒了!然後就出現了這個

Laravel unique驗證 排除當前記錄

圖中的 $this->route('transfer_app') 是resource路由的update方法中$id的值的獲取方法。可以先列印一下$this->route()看一下。(友情提示,這個資料有點多,小心卡死,哈哈)
完美搞定!
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章