如何让相关模型运行__construct?

时间:2010-08-30 06:43:21

标签: cakephp

历史悠久;我讨厌不能在CakePHP中使用枚举的事实,但我明白了。然而,我的另一个宠儿是我的布尔人返回0或1而没有办法普遍将他们变为是'和不是。

所以我虽然我会在AppModel的afterFind方法中创建一个小函数来为我做这个。我想要采取的第一步是确定布尔值的哪些列(因为某些列将返回零和不需要转换的列)。我设计了这个小小的代码和平:

function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table, $ds);
    foreach($this->_schema as $col => $colDetails){
        if($colDetails['type'] == 'boolean')
            $this->_booleans[] = $col;
    }
}

然而,模型中的快速调试($ this)表明只捕获了当前模型的布尔列。当我直接点击那些列时,$ this-> _booleans再次显示,而不是相关模型的那些。

我看过手册和API ..我没有提到如何处理解决方案。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

CakePHP不支持枚举,以使应用程序数据库类型独立。许多数据库引擎不支持枚举。最简单的解决方案是:

echo $model['boolField'] ? 'Yes' : 'No';

答案 1 :(得分:0)

问题是AppModel中的$this->_booleans仅包含当前模型的架构详细信息。实际上,代码可能正在运行。您应该检查$this->_booleans$this->Related->_booleans,我打赌您会找到您要找的内容。