Codeigniter Datamapper未运行获取具有NULL值的字段的规则

时间:2012-08-05 23:06:59

标签: codeigniter codeigniter-datamapper

我正在使用Datamapper v1.8.2与Codeigniter v2.1.2并且"get" rule似乎不会在NULL值的字段上运行。这是模型:

class Page extends Datamapper {

    public $validation = array(
        'name' => array(
            'rules' => array('required'),
            'get_rules' => array('get_page_name')
        )
    );

    function _get_page_name($field)
    {
        $this->$field = 'TESTING '.$this->id;
    }

}

示例代码:

$page = new Page();
foreach ($page->get() as $p) echo $p->name;

当表字段name具有包含空字符串的任何非空值时,它可以正常输出类似TESTING 358的内容,但是当值为NULL时(这是默认值)对于这个领域),它什么也没输出。使用get_iterated()没有区别。

我想我可以通过更改默认值来解决这个问题,但我想知道我做错了什么或错过了文档中的某些内容,或者这可能是一个错误?有谁知道这是什么问题?

此外,如果有人可以指向我在CI论坛中为Datamapper 1.8.2支持的正确线程,这将是伟大的,我试图找到它并迷失在旧版本的线程的线程的迷宫中DM。

1 个答案:

答案 0 :(得分:2)

您需要将allow_null添加到get_rules数组才能使其正常工作。我不确定创建者的意图,但这是how get_rules are implemented(但我没有在文档中提到它。)