phalcon model在插入或更新时会自动验证非空字段的解决办法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了phalcon model在插入或更新时会自动验证非空字段的解决办法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1335字,纯文字阅读大概需要2分钟。
内容图文
![phalcon model在插入或更新时会自动验证非空字段的解决办法](/upload/InfoBanner/zyjiaocheng/279/400e344edc014d76854e90ffdfbc8b3a.jpg)
对phalcom框架不了解的朋友可以点击了解下。
phalcon框架使用指南
在使用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) ); }
该方法直接把底层判断字段是否为空的逻辑关闭了,可以一劳永逸的解决这个问题,缺点就是,自己前后台得做好必填字段的判断。
内容总结
以上是互联网集市为您收集整理的phalcon model在插入或更新时会自动验证非空字段的解决办法全部内容,希望文章能够帮你解决phalcon model在插入或更新时会自动验证非空字段的解决办法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。