激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - phalcon model在插入或更新時會自動驗證非空字段的解決辦法

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

2021-04-12 14:11咖喱土豆雞塊 PHP教程

這篇文章主要介紹了phalcon model在插入或更新時會自動驗證非空字段的解決辦法,需要的朋友可以參考下

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

phalcon框架使用指南

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

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
public function skipValidation($skipers=[])
 {
  foreach ($skipers as $skiper) {
   if (empty($this->$skiper)) {
    $this->$skiper = new \Phalcon\Db\RawValue('""');
   }
  }
 }

使用的時候:

?
1
2
3
4
public function beforeValidation()
{
  $this->skipValidation(['tag','source_url']);
}

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

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

?
1
2
3
4
5
public function initialize(){
 $this->setup(
  array('notNullValidations'=>false)
 );
 }

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

原文鏈接:http://www.cnblogs.com/sbman/archive/2016/12/29/6233676.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一级淫片在线观看 | 国产美女三级做爰 | 久久精品一区二区三区不卡牛牛 | 成人在线观看免费爱爱 | 香蕉国产9 | 性 毛片 | 欧美黄 片免费观看 | 99在线热播精品免费 | av影院在线播放 | 久久精品亚洲欧美日韩精品中文字幕 | 18欧美性xxxx极品hd | 黄色网战入口 | 久久影片| 国产精品欧美久久久久一区二区 | 成人国产精品久久 | 中文字幕激情视频 | 九九精品在线观看视频 | 一本一道久久久a久久久精品91 | 一级做a爱片性色毛片 | 亚洲国产精品久久久久久久久久久 | 日本在线免费观看视频 | 欧美成人精品欧美一级 | 中文字幕电影免费播放 | h色网站在线观看 | 在线观看免费毛片视频 | 黄色毛片视频在线观看 | 欧洲精品色 | 精品亚洲福利一区二区 | 国产网站黄| 女教师~淫辱の动漫在线 | 日本精品视频一区二区三区四区 | 黄色成人短视频 | 一级黄色在线观看 | 日本在线播放一区二区 | 欧美一级黄色免费看 | 久久久99精品视频 | 欧美黄色三级视频 | 欧美一级做性受免费大片免费 | 久久精品中文字幕一区 | 一级免费a| 一级毛片免费一级 |