2

そのクエリの値を JSON エンコード配列に変換する別のコンポーネントへの入力パラメーターとして使用する SQL コマンドを取得しようとしています。問題は、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 に答える