如何在CakePHP中检索整数列的整数值?

时间:2012-04-13 00:20:21

标签: php mysql cakephp cakephp-2.0

当我执行findfetch时,返回的值数组包含我所有列的字符串表示形式,而不管列的数据类型如何。这意味着返回整数列而不是:

array( 'field1' => 1 )

他们最终成为

array( 'field1' => '1' )

CakePHP的预期行为是什么?我错误配置了什么吗?

我考虑过在我的模型的afterfind方法中编写一些代码来在适当的列上调用intval,但这真的是最好的解决方案吗? CakePHP有更好的方法来处理非字符串列吗?

2 个答案:

答案 0 :(得分:1)

您可以从模型属性Model :: _ schema中找出模型表中字段的类型。在此基础上,您可以在Model::afterFind()回调中为字段输入值。

您也可以手动检查要整数的字段,但使用_schema可以让它自动化。例如,您可以将此操作作为一种行为,并将其附加到需要此功能的每个模型。

所以简单地遍历结果并检查你想要整数的字段并输入它们。

答案 1 :(得分:1)

我也注意到了这一点,显然这是PDO将所有内容转换为字符串的结果。我提交了ticket,希望将来可能会出现强制功能的自动功能。

虽然客户端可以转换数据,但它并不是非常“干净”,特别是当您向第三方开发人员提供api时。

相关问题