用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2841|回复: 3
收起左侧

往内容模型中添加字段时的一个bug

[复制链接]
发表于 2012-11-2 00:58:39 | 显示全部楼层 |阅读模式
废话不多说,直接上代码吧
/shared/libraries/Field_behavior.php

当字段类型为text(wysiwyg or wysiwyg_basic)时,程序中还指定了默认值
这样就语法错误了



直接注释掉default那一行就可以解决了



PHP复制代码
 
/**
     * 生成字段的创建信息
     *
     * @access  public
     * @param   string
     * @param   string
     * @return  array
     */

        public function  on_info($data, $oldname = '')
        {
                if ($this->_is_extra($data['type']))
                {
                        $this->_load_extra_field($data['type']);
                        $field = $this->_extra_fields[$data['type']]->on_info($data);
                }
                else
                {
                        switch ($data['type'])
                        {
                                case 'select_from_model' :
                                case 'radio_from_model':
                                case 'int'      : $field = array(
                                                                                                'type' => 'INT',
                                                                                                 'constraint' => $data['length'] ? $data['length'] : 10 ,
                                                                                                 'default' => 0
                                                                                                ) ;
                                                                break;
                                case 'float' : $field = array(
                                                                                                'type' => 'FLOAT',
                                                                                                 'constraint' => $data['length'] ? $data['length'] : 10,
                                                                                                 'default' => 0
                                                                                                ) ;
                                                                break;
                                case 'input' :
                                case 'select':
                                case 'radio' :
                                case 'checkbox':
                                case 'checkbox_from_model':
                                case 'datetime':
                                case 'colorpicker':
                                case 'linked_menu':
                                case 'textarea' :
                                                                $field = array(
                                                                                                'type' => 'VARCHAR',
                                                                                                 'constraint' => $data['length'] ? $data['length'] : 100 ,
                                                                                                 'default' => ''
                                                                                                ) ;
                                                                break;
                                case 'wysiwyg' :
                                case 'wysiwyg_basic':
                                                                $field = array(
                                                                                                'type' => 'TEXT',
                                                                                                //'default' => ''
                                                                                                ) ;
                                                                break;
                        }
                }
                        if ($oldname != '')
                        {
                                $field['name'] = $data['name'];
                                return array($oldname => $field);
                        }
                        else
                        {
                                return array($data['name'] => $field);
                        }
        }
复制代码
发表于 2012-11-2 01:01:47 | 显示全部楼层
多谢,不该给text相关类型指定默认值
 楼主| 发表于 2012-11-2 01:06:03 | 显示全部楼层
jeongee 发表于 2012-11-2 01:01
多谢,不该给text相关类型指定默认值

呃.. 大半夜的怎么还没休息?  
同是夜猫子,握个手{:soso_e181:}
发表于 2012-11-29 14:44:55 | 显示全部楼层
CMS 一般不会出错 个人这样认为的

本版积分规则