作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
历史很少;我讨厌我不能在 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/
我是一名优秀的程序员,十分优秀!