這篇文章將為大家詳細(xì)講解有關(guān)thinkPHP中自動(dòng)驗(yàn)證、自動(dòng)添加及表單錯(cuò)誤的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)安源,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792具體如下:
最近再做一個(gè)項(xiàng)目,想用thinkphp寫(xiě)驗(yàn)證,結(jié)果淚奔了幾天。一開(kāi)始就是令牌錯(cuò)誤,后來(lái)有什么自動(dòng)添加無(wú)效。
一直在測(cè)試,一直在查找,知道發(fā)現(xiàn)create()方法原來(lái)有兩個(gè)參數(shù),
第一個(gè)參數(shù)是大家都知道了數(shù)據(jù)參數(shù),第二個(gè)是隱藏的$type參數(shù),這個(gè)參數(shù)用來(lái)控制什么的呢??
//$type = $type?$type!empty($data[$this->getPk()])?self::MODEL_UPDATE:self::MODEL_INSERT);
仔細(xì)琢磨了這句話才發(fā)現(xiàn),這個(gè)隱藏參數(shù)是用來(lái)指明本次數(shù)據(jù)庫(kù)具體是什么操作的?
$type取值為 1即為插入操作,0即為更新操作,默認(rèn)的情況下是不用給這個(gè)參數(shù)賦值的,原因是,系統(tǒng)能自動(dòng)識(shí)別。
如果你的主鍵是數(shù)據(jù)庫(kù)自動(dòng)的添加的,那就沒(méi)事。如果是手動(dòng)添加,那就悲劇了。因?yàn)槟J(rèn)是更新數(shù)據(jù)操作。
下面是我寫(xiě)的自動(dòng)完成的代碼
protected $_auto = array( array('password','sha1',1,'function'), array('date', 'time', 1, 'function'), );
看到那個(gè)1了沒(méi)有,那個(gè)1表示是當(dāng)插入數(shù)據(jù)是,才執(zhí)行函數(shù)。PS:就是因?yàn)檫@個(gè),糾結(jié)了我N久。
當(dāng)要錄入數(shù)據(jù)的時(shí)候您可以這么寫(xiě):
create($_POST,1)//【插入數(shù)據(jù)】 create($_POST,2)//【更新數(shù)據(jù)】
直接告訴create方法此次操作是插入操作,這樣可以解決自動(dòng)完成時(shí)機(jī)不對(duì)問(wèn)題,自動(dòng)完成無(wú)效問(wèn)題。
但你執(zhí)意不要這么寫(xiě),我也沒(méi)辦法,你只要記得,如果create()函數(shù),默認(rèn)為更新數(shù)據(jù)。寫(xiě)Model方法時(shí)。
thinkphp 自動(dòng)完成圖
看到?jīng)]有,
protected $_auto = array( array('password','sha1',2,'function'), array('date', 'time', 2, 'function'), //把1換成2就好了。 );
問(wèn)題就可以解決了。
關(guān)于“thinkPHP中自動(dòng)驗(yàn)證、自動(dòng)添加及表單錯(cuò)誤的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。