#1 SunPSP
spArgs提供了三个参数,常用的是表单name值跟默认值今天遇上个问题
很常见的功能
当前台表单未填写,传过来空值的时候,自动写入设定的默认值
表单名:fields,默认值:uuid,title,status
查看手册说明,当参数不存在的时候会使用默认值那么spArgs('fields','uuid,title,status')
如果表单不填写的情况下,执行之后数据库中该字段依旧为空,并没有写入默认值uuid,title,status
这里有一个问题,这个不存在是什么概念,是没有这么个表单传入数据还是包含了该表单传入值为空的情况?
在群里问过,某位说为空就是使用默认值,而听着意思发言的人不少都是这个意见
但是实际测试发现表单传入值为空的时候并没有代入默认值依旧使用空值插入数据库
如果用if判断则正常实现需要的功能
if($this->spArgs('fields')=='')$fields='uuid,title,status';
这个句子跟
spArgs('fields','uuid,title,status')
效果上不等价?
这样的话岂不是说如果传入空值,依旧认为值存在,使用空值插入而不用设置的默认值
又或者spArgs()用法不正确?
代码如下:
$$$$uuid=spUUID();如图:
$$$$name=$$$$this->spArgs('name');
$$$$storage=$$$$this->spArgs('storage');
$$$$fields=$$$$this->spArgs('fields','uuid,title,status');
$$$$ordered=$$$$this->spArgs('ordered');
$$$$sql="INSERT INTO {$$$$this->prefix}common_application (uuid,name,storage,fields,ordered) VALUES ('$$$$uuid','$$$$name','$$$$storage','$$$$fields','$$$$ordered')";
$$$$this->insert=spClass('spSQL')->runSql($$$$sql);
表单的填写
数据库实际插入值:
2013-03-28 16:04:00