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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部