国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

phalcon model在插入或更新時會自動驗證非空字段的解決辦法

2024-05-04 23:54:07
字體:
來源:轉載
供稿:網友

對phalcom框架不了解的朋友可以點擊了解下。

在使用phalcon的insert和update功能時,因為數據庫所有的字段設置的都是NOT NULL,而phalcon的model在插入或更新之前會自動判斷字段是否需要必填,因此導致有空字段時無法存入。

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

一、改數據庫字段,把NOT NULL改為可以為空。

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

二、給可以為空的字段設置默認值。

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

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

一、給可以為空的字段單獨設置規則

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

使用的時候:

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

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

二、關閉phalcon對字段是否為空的判斷

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

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


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 沅江市| 凤山市| 阿图什市| 于田县| 芮城县| 黄大仙区| 和田县| 忻州市| 三都| 衡阳县| 云阳县| 兰州市| 临颍县| 大英县| 政和县| 炎陵县| 崇文区| 驻马店市| 尉氏县| 广德县| 同德县| 台中县| 加查县| 宁武县| 海安县| 西丰县| 新丰县| 孝感市| 融水| 和田县| 宁强县| 杂多县| 襄樊市| 南部县| 阜城县| 启东市| 修文县| 漳浦县| 滦南县| 扎兰屯市| 岳西县|