我正在使用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。
答案 0 :(得分:2)
您需要将allow_null
添加到get_rules
数组才能使其正常工作。我不确定创建者的意图,但这是how get_rules are implemented(但我没有在文档中提到它。)