摘要:昨天在后臺添加話題數據時,報了下面錯誤,看錯誤提示大概知道是的字段設置了唯一索引導致數據無法插入導致,但想不到為什么會直接報錯了。后來在的里發現這段驗證代碼,才明白是因為它導致的。由于對字段驗證還使用了,會把輸入的包含特殊字符進行轉義。
昨天在后臺添加話題數據時,報了下面錯誤,看錯誤提示大概知道是mysql的name字段設置了唯一索引導致數據無法插入導致,但想不到為什么會直接報錯了。因為插入別的值都沒有遇到這樣情況。
后來在model的rules里發現
[["name"], "filter", "filter" => "yiihelpersHtml::encode"]
這段驗證代碼,才明白是因為它導致的。由于對name字段驗證還使用了filter,Html::encode會把輸入的包含html特殊字符進行轉義。當時輸入的是"CHARLES&KEITH",經過Html::encode轉義成了"CHARLES"&"amp;KEITH",然后存入庫中的字段值就是"CHARLES"&"amp;KEITH"了。但是上面還有個name字段的驗證,
[["name"], "unique"]
它是使用用戶輸入的"CHARLES&KEITH"值去與數據庫中的所有name字段只進行比較的,這樣比較的話,就自然通過了(在前端驗證這關)。但接下來filter又把用戶輸入的值進行Html::encode轉義成了"CHARLES"&"amp;KEITH",然后向數據庫中插入時,由于name字段設置了唯一索引而且已存在這個值,然后yii2就報了這個錯誤(如果有理解不正確的地方請大家指正)。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23323.html
小編寫這篇文章的一個主要目的,主要是給大家去做一個詳細解答,解答的內容是基于Python的,基于Python去制作AI聊天軟件,實現遠程聊天。那么,現在有沒有現成的代碼呢?下面就給大家詳細解答下。 效果圖 先看一下效果圖 就當是女友無聊的時候自己抽不出時間的小分身吧! 需要用到的庫 tkinter、time、urllib、requests tkinter負責窗體、time顯示時間、...
今天,小編給大家去做一個詳細的介紹,介紹的內容是涉及到Python的,主要還是利用這門語言去進行編程,我們可以利用這門語言,去編寫一個示例器的代碼,具體的代碼,下文給大家貼了出來。 前言 想起小學的時候老師想點名找小伙伴回答問題的時候,老師竟斥巨資買了個點名器。今日無聊便敲了敲小時候老師斥巨資買的點名器。 本人姓白,就取名小白點名器啦,嘿嘿 代碼包含:添加姓名、查看花名冊、使用指南、隨...
閱讀 3638·2021-11-25 09:43
閱讀 636·2021-09-22 15:59
閱讀 1744·2021-09-06 15:00
閱讀 1769·2021-09-02 09:54
閱讀 689·2019-08-30 15:56
閱讀 1176·2019-08-29 17:14
閱讀 1839·2019-08-29 13:15
閱讀 880·2019-08-28 18:28