亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

phalcon model在插入或更新時(shí)會(huì)自動(dòng)驗(yàn)證非空字段的解決辦法

 更新時(shí)間:2016年12月29日 16:55:25   作者:咖喱土豆雞塊  
這篇文章主要介紹了phalcon model在插入或更新時(shí)會(huì)自動(dòng)驗(yàn)證非空字段的解決辦法,需要的朋友可以參考下

對phalcom框架不了解的朋友可以點(diǎn)擊了解下。

phalcon框架使用指南

在使用phalcon的insert和update功能時(shí),因?yàn)閿?shù)據(jù)庫所有的字段設(shè)置的都是NOT NULL,而phalcon的model在插入或更新之前會(huì)自動(dòng)判斷字段是否需要必填,因此導(dǎo)致有空字段時(shí)無法存入。

開始遇到這問題時(shí),想到兩種解決方法:

一、改數(shù)據(jù)庫字段,把NOT NULL改為可以為空。

  但該數(shù)據(jù)庫還得去找DBA,而且為了性能,DBA要求一般沒有特殊情況,字段必須是NOT NULL,所以該方案否決。

二、給可以為空的字段設(shè)置默認(rèn)值。

  想過各種默認(rèn)值,覺得空格最符合,但是賦值空格后,數(shù)據(jù)庫里存的也會(huì)是空格,像一些empty和==''等判斷會(huì)失效,很可能會(huì)影響一些業(yè)務(wù)邏輯,想想,還是放棄該方案。

最后還是上網(wǎng)各種搜,phalcon的資料太少,百度根本搜不出來,最后轉(zhuǎn)戰(zhàn)google,功夫不負(fù)有心人,終于給我找到些蛛絲馬跡,最后再根據(jù)蛛絲馬跡找出來真正的解決方案。同樣有兩種,如下:

一、給可以為空的字段單獨(dú)設(shè)置規(guī)則

public function skipValidation($skipers=[])
 {
  foreach ($skipers as $skiper) {
   if (empty($this->$skiper)) {
    $this->$skiper = new \Phalcon\Db\RawValue('""');
   }
  } 
 }

使用的時(shí)候:

public function beforeValidation()
{
  $this->skipValidation(['tag','source_url']);
}

這種方法可以完美解決問題,比較麻煩的是,需要設(shè)置每個(gè)可以為空的字段。

二、關(guān)閉phalcon對字段是否為空的判斷

public function initialize(){
 $this->setup(
  array('notNullValidations'=>false)
 );
 }

該方法直接把底層判斷字段是否為空的邏輯關(guān)閉了,可以一勞永逸的解決這個(gè)問題,缺點(diǎn)就是,自己前后臺(tái)得做好必填字段的判斷。

相關(guān)文章

  • php+ajax導(dǎo)入大數(shù)據(jù)時(shí)產(chǎn)生的問題處理

    php+ajax導(dǎo)入大數(shù)據(jù)時(shí)產(chǎn)生的問題處理

    介紹:就是想實(shí)現(xiàn)簡單的ajax上傳數(shù)據(jù),但是當(dāng)數(shù)據(jù)量較大的時(shí)候,問題就一個(gè)一個(gè)接著來了,其實(shí)數(shù)據(jù)也不是很大,就是csv格式數(shù)據(jù) 不到5w條數(shù)據(jù)。大小5M,一開始認(rèn)為這個(gè)很簡單,就是先上傳一下文件,然后讀取一下,存到數(shù)據(jù)庫就好了,結(jié)果,可能我比較菜,弄了半天做出這個(gè)功能。環(huán)境是linux.
    2014-06-06
  • CentOS 安裝 PHP5.5+Redis+XDebug+Nginx+MySQL全紀(jì)錄

    CentOS 安裝 PHP5.5+Redis+XDebug+Nginx+MySQL全紀(jì)錄

    這篇文章主要介紹了在CentOS系統(tǒng)環(huán)境下安裝 PHP5.5+Redis+XDebug+Nginx+MySQL開發(fā)環(huán)境的全過程,非常的細(xì)致詳盡,推薦給有需要的小伙伴們參考下吧。
    2015-03-03
  • ThinkPHP進(jìn)程計(jì)數(shù)類Process用法實(shí)例詳解

    ThinkPHP進(jìn)程計(jì)數(shù)類Process用法實(shí)例詳解

    這篇文章主要介紹了ThinkPHP進(jìn)程計(jì)數(shù)類Process用法,以實(shí)例形式較為詳細(xì)的分析了Process類的定義及進(jìn)程計(jì)數(shù)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • PHP 使用memcached簡單示例分享

    PHP 使用memcached簡單示例分享

    在很多場合,我們都會(huì)聽到 memcached 這個(gè)名字,但很多同學(xué)只是聽過,并沒有用過或?qū)嶋H了解過,只知道它是一個(gè)很不錯(cuò)的東東。這里簡單介紹一下,memcached 是高效、快速的分布式內(nèi)存對象緩存系統(tǒng),主要用于加速WEB動(dòng)態(tài)應(yīng)用程序。今天我們就先來簡單探討下memcached的用法
    2015-03-03
  • PHP中is_file()函數(shù)使用指南

    PHP中is_file()函數(shù)使用指南

    php中is_file()函數(shù)是用來判斷文件是否存在,使用方法也非常的簡單,有需要的小伙伴可以參考下。
    2015-05-05
  • PHP內(nèi)存緩存功能memcached示例

    PHP內(nèi)存緩存功能memcached示例

    這篇文章主要介紹了PHP內(nèi)存緩存功能memcached示例,簡單的介紹了memcached,是php操作memcached的典型應(yīng)用,有需要的朋友可以來了解一下,
    2016-10-10
  • Yii Framework框架中事件和行為的區(qū)別及應(yīng)用實(shí)例分析

    Yii Framework框架中事件和行為的區(qū)別及應(yīng)用實(shí)例分析

    這篇文章主要介紹了Yii Framework框架中事件和行為的區(qū)別及應(yīng)用,結(jié)合實(shí)例形式分析了Yii Framework框架中事件和行為的相關(guān)概念、原理、區(qū)別及應(yīng)用操作技巧,需要的朋友可以參考下
    2020-04-04
  • PHP 7.0.2 正式版發(fā)布

    PHP 7.0.2 正式版發(fā)布

    七年以來,PHP一直是第四大最流行的編程語言,驅(qū)動(dòng)全球超過2億多個(gè)網(wǎng)站,全球超過81.7%的公共網(wǎng)站在服務(wù)器端采用PHP。PHP在這個(gè)星期有了自2004年以來最大的飛躍,因?yàn)镻HP 7已經(jīng)發(fā)布
    2016-01-01
  • 最新評(píng)論