1

我将Datamapper v1.8.2 与 Codeigniter v2.1.2 一起使用,并且有一个“get”规则,它似乎不会在具有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 线程的迷宫链接中。

4

1 回答 1

2

您需要将其添加allow_nullget_rules数组中才能使其工作。我不确定创建者的意图,但这就是get_rules 的实现方式(但是我没有在文档中看到它)。

于 2012-08-06T06:30:44.780 回答