1
我試圖以稍微複雜的方式排列我的結果。我創建了一個名爲「優先級」的虛擬域,以便按順序排列結果。這裏是我的代碼:CakePHP MySQL虛擬字段問題
public $virtualFields = array(
'priority'=>'(Venue.featured * 5000) + (Venue.views * 2) + ((Venue.image_count > 0) * 500)',
);
現在這個總是返回的只是價值((Venue.image_count> 0)* 500),即500或0。如果我刪除領域的一部分,留下:
public $virtualFields = array(
'priority'=>'(Venue.featured * 5000) + (Venue.views * 2)',
);
給出了預期的結果。我也希望在該領域增加另一個組件,它具有相同的效果。代碼:
public $virtualFields = array(
'priority'=>'(Venue.featured * 5000) + (Venue.views * 2) + ((CHAR_LENGTH(Venue.blurb) > 0) * 500)',
);
在這種情況下,再次,本場曾經只有500或0,不是所有的領域的全部價值。
我不明白髮生了什麼事!如果我創建一個可以測量image_count或CHAR_LENGTH(Venue.blurb)的虛擬字段,它可以正常工作,但將其中任何一個添加到字段的其他部分都會導致失敗。
謝謝,這是固定它。任何想法爲什麼((Venue.image_count> 0)* 500)自己返回0或500,但? – Will