历史悠久;我讨厌不能在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 ..我没有提到如何处理解决方案。
我做错了什么?
答案 0 :(得分:2)
CakePHP不支持枚举,以使应用程序数据库类型独立。许多数据库引擎不支持枚举。最简单的解决方案是:
echo $model['boolField'] ? 'Yes' : 'No';
答案 1 :(得分:0)
问题是AppModel中的$this->_booleans
仅包含当前模型的架构详细信息。实际上,代码可能正在运行。您应该检查$this->_booleans
和$this->Related->_booleans
,我打赌您会找到您要找的内容。