【发布时间】:2011-07-07 15:52:18
【问题描述】:
我正在尝试以一种稍微复杂的方式对我的结果进行排序。我创建了一个名为“优先级”的虚拟字段来排序结果。这是我的代码:
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) 的虚拟字段,它可以正常工作,但是将其中任何一个添加到该字段的其他部分都会使其失败。
【问题讨论】:
标签: mysql cakephp cakephp-1.3