robbins
mysql数据库开启严格模式后not null的字段就必须写入。
2种办法解决你的问题:
1,关闭mysql严格模式,这样即使not null也不用必须写入;
2,把not null去掉,抑或not null但把default设置好。- robbins 回答了问题 使用查询出的数据,有些字段为空
$v->attributes块赋值的话,需要通过验证。看看你的模型类吧!
- robbins 发表了说说睡不着,扫问题。问答板块的回复功能Crash啦!赶紧修复下吧
你这是自己发明的方法吗?命名都不符合规范。
给你一个思路
window.onbeforeunload = function b(){ setTimeout(function(){ setTimeout(beforeloadResult, 50)} , 50); return '确认离开网页?';
};
//如果用户留在了页面,就执行下面这个。
function beforeloadResult () {
alert('你还在本页面');
}
不用确认用户表单是否提交,只要打开页面超过一定时间就需要确认才可以离开。睡不着,再回复下。
如何恢复表单数据
恢复数据也完全不用后端服务器资源参与,直接使用js每隔一段就收集表单的存在的value值保存成一个快照cookie并设定为短时间过期即可,用户误操作后再次进入表单页面加载完成后如果存在cookie,就提示用户是否同意恢复,同意则读取cookie里的快照放入表单value里,不同意则销毁cookie。提交完表单时直接销毁快照。
这样做的风险就是允许js操作cookie会比较不安全。
而好处也显而易见不占用任何服务器资源。
另外也可以使用h5的本地缓存,方法多种多样就看怎么想了,性能优先还是安全第一。- robbins 回答了问题 关于表结构的设计问题
这样设计:
1,提成比例表(id,cid,scale) 字段说明:id提成方案父id,cid子id,scale提成比例。
2,月份提成记录表(id,jan,feb,.....dec,year) 字段说明:id月份提成记录表id,jan~dec为一到十二月,year年份
3,每月将比例表的id记录进月份提成记录表的对应月份内。
其他说明:year就是填100年也就100条记录。查询的时候:
通过年份year和月份直接找到对应的比例id;(查询时间很简单,不管是时间戳还是具体日期,月部分为1~12,switch直接找出月份英文缩写即可)
更新时候:
同理; 有啥好不好的?性能才是关键,怎么做速度快消耗资源小怎么来。
主要看你的积分是要和什么显示在一起。执行1条查询总会比执行2条..3条快。- robbins 回答了问题 yii2 如何以数组的形式保存到数据库?
我赞成YiiSoEasy的方法,直接序列化后储存。表单一类的数据都可以序列化。
甚至可以序列化一个类存在数据库并在‘合适位置’调用,至于什么是合适位置请自行研究。 - robbins 2016-06-18 已签到连续签到3天,获得了15个金钱