加入 Yii 类 CDBCriteria?
Posted
技术标签:
【中文标题】加入 Yii 类 CDBCriteria?【英文标题】:Joins in Yii class CDBCriteria? 【发布时间】:2012-02-09 17:55:38 【问题描述】:谁能帮我将下面的 SQL 语句(在我的数据库中工作)转换为 Yii 框架 CDbCriteria 类格式?
这是我的 SQL:
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 距离从汽车加入 car_dealers ON cars.company_id=car_dealers.company_id WHERE cars.make='Fiat' AND cars.model='Punto' ORDER BY distance;
这是我的 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'); 基本上我的对象会根据该参数返回汽车表中的所有值,但不会将距离值带回对象中。 我希望你已经在汽车模型类中声明了 $distance 变量 【参考方案1】:这里有错别字
$criteria->params= array('[:make] => Fiat,[:model] => Punto')
应该是:
$criteria->params= array(':make' => 'Fiat',':model' => 'Punto')
【讨论】:
以上是关于加入 Yii 类 CDBCriteria?的主要内容,如果未能解决你的问题,请参考以下文章