我的'用户'模型(表)有一个名为'active'的type: 'boolean'
属性(列)。在查询Blueprint API时:
案例1:http://localhost:1337/user?active=true
不返回任何数据。然而,
案例2:http://localhost:1337/user?active=1
表现出理想的方式。
我尝试跟踪请求,但无法超越actionUtil.js。 {1}在案例1中返回where
,在案例2中返回{active: 'true'}
。奇怪的是,作为字符串的数字转换为数字(1),但作为字符串的布尔值不转换。由于ORM已生成类型为{active: '1'}
的此列,因此我确信在某处发生了“1”到1次转换。我只需要为布尔值添加另一个转换为0/1。有什么帮助吗?
如果有人能解释请求跟踪,那真的很棒!我不知道find.js中tinyint(1)
函数的定义位置。
答案 0 :(得分:3)
我确信在某处发生了'1'到1的转换。
Yup - 在Javascript中。启动Javascript控制台并尝试:
"1" == true
"0" == false
"true" == true
"false" == false
前两个将返回true
。第二个将返回false
。
如果您要使用查询字符串的蓝图,则必须处理查询字符串中的所有内容都是字符串的事实。这意味着使用1
和0
代替true
和false
,以及其他事项(例如小心===
)。