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