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