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