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')
をタイプミスがあり
あなたが取得しているエラーは何か?詳細を教えてください。 バットからすぐに、私はあなたが間違ってparamsを使っているのを見ることができます - $ criteria-> params = array( ':make' => 'Fiat'、 ':model' => 'Punto'); –
基本的には、私のオブジェクトは、カーのテーブルのすべての値を元に戻ってきていますが、そのパラメータに基づいていますが、距離値をオブジェクトに戻して戻すことはありません。 –
カーモデルクラスで$ distance変数を宣言していただければ幸いです –