【发布时间】:2017-03-17 09:00:46
【问题描述】:
我正在尝试从VARCHAR 类型的表字段customernumber 中获取数据。就是这样,因为客户编号可以是“0024”和“1234”。
$query->getTypeMap() 告诉我它在 cakePHP 中具有 string 类型。现在我们的客户希望在键入“24”或“0024”时获得带有“0024”的客户。
我自己认为没问题,所以我只需将输入值输入到int。但是 cakePHP ORM 似乎根据类型映射进行转换,我不知道如何动态更改类型。
我试过了:
$query->find()
->select()
->where(['customernumber' => intval($input)]
->typeMap(['customernumber' => 'integer']);
但在我的搜索输入中输入 24 时,我收到一个空结果。
我希望你看到我在寻找什么。谢谢!
【问题讨论】:
-
不能只用mysql CAST吗?
-
嗯,你的意思是这样的:
$query->find()->select()->where(['customernumber' => $query->func()->cast($input)]->typeMap(['customernumber' => 'integer']);?可悲的是,我也不会收到结果。 -
no
where([$query->func()->cast('customernumber') => $input])或类似的东西(我实际上并没有尝试过该代码)