onethink后台分类模型选择更新后无法更新为空,问题是在哪里?
下面快速解决:
首先找到我们的后台分类模型,找到自动完成定义函数:
protected $_auto = array(
array('model', 'arr2str', self::MODEL_BOTH, 'function'),
array('model', null, self::MODEL_BOTH, 'ignore'),
array('model_sub', 'arr2str', self::MODEL_BOTH, 'function'),
array('model_sub', null, self::MODEL_BOTH, 'ignore'),
array('type', 'arr2str', self::MODEL_BOTH, 'function'),
array('type', null, self::MODEL_BOTH, 'ignore'),
array('reply_model', 'arr2str', self::MODEL_BOTH, 'function'),
array('reply_model', null, self::MODEL_BOTH, 'ignore'),
array('extend', 'json_encode', self::MODEL_BOTH, 'function'),
array('extend', null, self::MODEL_BOTH, 'ignore'),
array('create_time', NOW_TIME, self::MODEL_INSERT),
array('update_time', NOW_TIME, self::MODEL_BOTH),
array('status', '1', self::MODEL_BOTH),
);
找到分类的字段model和model_sub字段,确定对应数组最后一个字段function,说明使用函数,表示填充的内容是一个函数名。
所以找到对应的函数,arr2str,表示的意思很明显就是数组转字符串,所以找到此函数,在我们的公共common目录下找到function.php文件,OK?
找到此函数,搜索下找到arr2str函数如下:
/**
* 数组转换为字符串,主要用于把分隔符调整到第二个参数
* @param array $arr 要连接的数组
* @param string $glue 分割符
* @return string
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
function arr2str($arr, $glue = ','){
return implode($glue, $arr);
}
按理来讲当$arr为空时,返回也就为空,但是发现更新不了字段。
所以我把上面的函数修改为了下面的函数,一点小小的改动成功了,别的方法没找到,要是你有很好的方式请在下方留言,一起学习,谢谢!
/**
* 数组转换为字符串,主要用于把分隔符调整到第二个参数
* @param array $arr 要连接的数组
* @param string $glue 分割符
* @return string
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
function arr2str($arr, $glue = ','){
if(empty($arr)){
return '';
}else{
return implode($glue, $arr);
}
}
如果转载请注明来源,谢谢!http://www.dianthink.com/Article/detail/id/141.html
发表评论 取消回复