2

我正在尝试检索 SQL 命令以用作另一个组件的输入参数,该组件会将值从该查询转换为 JSON 编码数组。问题是 column1 是一个字符串,而 column2 是一个 FLOAT 字段。

查询示例:

    SELECT col1, col2
    FROM tableA

考虑col1是 VARCHAR 而col2是 FLOAT 字段。

如何运行 CSqlDataProvider->getData() 并将数组设置为:

    array(
      'col1' => 'value1_as_string',
      'col2' => value2_as_float_or_number  
    );

我可以设法运行查询,但是 CSqlDataProvider->getData 返回一个数组数组,并且所有值都默认转换为 STRING。

如何使用 CSqlDataProvider->getData() 获得一个混合了字符串和数字的数组?

4

1 回答 1

0

如果您想将此值设为 Float,则应使用 (float)$value 或 floatval($value) 进行转换,但也许您应该编写自己的

YourSQLProvider extends CSqlDataProvider {

   protected function fetchData(){
    $data =  parent::fetchData();

    //...parse $data ...


    return $parsedData;
   }    
}
于 2012-12-26T19:48:58.897 回答