当我执行 find
或 fetch
时,无论列的数据类型如何,返回的值数组都包含所有列的字符串表示形式。这意味着不是像这样返回整数列:
array( 'field1' => 1 )
他们最终变成了
array( 'field1' => '1' )
这是 CakePHP 的预期行为吗?我是不是配置有误?
我考虑过在我的模型的 afterfind
方法中编写一些代码以在适当的列上调用 intval
,但这真的是最好的解决方案吗? CakePHP 是否有更好的方法来处理非字符串列?
最佳答案
您可以从模型属性 Model::_schema 中找出您的模型表中的字段类型。基于此,您可以在 Model::afterFind() 中为您的字段键入值。回调。
您也可以手动检查您希望成为整数的字段,但使用 _schema 可以让您自动完成。例如,您可以将此作为一种行为来执行,并将其附加到需要此功能的每个模型。
因此,只需遍历结果并检查您希望成为整数的字段并对其进行类型转换。
关于php - 如何在 CakePHP 中检索整数列的整数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133666/