cakephp - 如何让关联模型运行 __construct?

标签 cakephp

历史很少;我讨厌我不能在 CakePHP 中使用枚举,但我明白了。然而,我的另一个烦恼是我的 bool 值返回 0 或 1,并且没有办法将它们普遍地转换为"is"和“否”。

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

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)显示仅捕获当前模型的 bool 列。当我直接点击这些列时, $this->_booleans 会再次出现,而不是关联模型的那些。

我已经阅读了手册和 API。我没有看到任何关于如何实现解决方案的提及。

我做错了什么?

最佳答案

为了使应用程序数据库类型独立,CakePHP 不支持枚举。许多数据库引擎不支持枚举。对于您的任务来说,最简单的解决方案是:

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

关于cakephp - 如何让关联模型运行 __construct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3598395/

相关文章:

Cakephp 使用 WHEN CASE 进行查询

jquery - 如何在cakephp上实现类似facebook的通知?

CakePHP 内部服务器错误仅针对某些用户,清除缓存后消失

CakePHP 3 查找所有包含空数据,什么都不显示?

mysql - 在 cakephp3 中迁移

cakephp - 在 cakephp 中使用 SQL 函数返回错误

mysql - 将 i18n 数据与关联表一起保存

CakePHP 在应用程序的 Controller 中调用插件模型

php - 我如何路由到 app/webroot 文件夹? (蛋糕PHP)

mysql - hasMany 与 "hasMany through"线程消息应用程序的数据库结构