0
在MySQL中的表达,你可以有这样的选择的条件和别名
SELECT d., d.is_new,
(
d.distance - 1
) AS `dist`
FROM `table` AS d
WHERE d.is_new!='1'
HAVING `dist` <= 10
查询如何使这项工作的Yii 1.1.15使用我范围在我的模型函数?现在,我有这个
public function scopes()
{
return array(
'_distance'=>array(
'alias' => 'd',
'select'=>array('d.id, d.is_new,
(
d.distance - 1
) AS `dist`'
),
'having'=>'`dist` <= 10',
'condition'=>'d.is_new!="1"'
)
);
}
查询工作,它只是没有我的呼唤_distance
返回dist
列。当我在phpmyadmin中运行查询时,它也可以正常工作。
$dataProvider=new CActiveDataProvider(Bla::model()->_distance(), .....);
任何想法我失踪了?
哇加入'公共$ dist;'工作!仍然没有得到为什么寿。不太明白doc中的解释。遗憾的是Yii的新手 – user2636556 2014-11-08 19:10:21
ActiveRecord需要一个地方来存储结果。与记录的列属性不同,它自动创建魔术属性,“dist”不是模型的属性,所以除非手动提供公共属性,否则分配不会发生。 – 2014-11-08 21:46:26
谢谢@WillemRenzema – user2636556 2014-11-10 02:37:39