2012-02-09 5 views
0

誰も私がYiiのフレームワークCDbCriteriaクラスのフォーマットにこの次のSQLステートメント(私のデータベースで動作する)を変換するのを助けることができますか?ここでYiiクラスの参加CDBCriteria?

は私のSQLです:

SELECT車*、3963の* ACOS(COS(ラジアン(53.376217))* COS(ラジアン(car_dealers.latitude))* COS(ラジアン(-1.499595) - ラジアン(。車からの距離(距離):車からの距離(車間距離)car_dealers on cars.company_id = car_dealers.company_idここでcars.make = 'Fiat' AND cars.model(車幅別距離))+ sin(ラジアン(53.376217) = 'Punto' ORDER BY距離;ここで

が私のYiiの試みです:

$criteria= new CDbCriteria; 
$criteria->alias = 'cars'; 
$criteria->select= 'cars.*, 3963 * acos(cos(radians(53.376217)) * cos(radians(car_dealers.latitude)) * cos(radians(-1.499595) - radians(car_dealers.longitude)) + sin(radians(53.376217)) * sin(radians(car_dealers.latitude))) AS distance'; 
$criteria->join='JOIN car_dealers ON cars.company_id=car_dealers.company_id'; 
$criteria->condition= 'make=:make AND model=:model'; 
$criteria->params= array('[:make] => Fiat,[:model] => Punto') 
$criteria->order='distance'; 

を助けることができる誰にも事前にありがとうございました! :)あなたがここに

$criteria->params= array('[:make] => Fiat,[:model] => Punto') 

をタイプミスがあり

+0

あなたが取得しているエラーは何か?詳細を教えてください。 バットからすぐに、私はあなたが間違ってparamsを使っているのを見ることができます - $ criteria-> params = array( ':make' => 'Fiat'、 ':model' => 'Punto'); –

+0

基本的には、私のオブジェクトは、カーのテーブルのすべての値を元に戻ってきていますが、そのパラメータに基づいていますが、距離値をオブジェクトに戻して戻すことはありません。 –

+0

カーモデルクラスで$ distance変数を宣言していただければ幸いです –

答えて

0

それは次のようになります。

$criteria->params= array(':make' => 'Fiat',':model' => 'Punto') 
関連する問題