我想使用CakePHP从数据库中提取照片数组,按照照片标题排序(0,1,2,3 ......)我的查询目前看起来像:
$ss_photos = $this->Asset->find('all',array(
'conditions'=>array('kind'=>'photo'),
'order'=>'title'
));
不幸的是,标题似乎是字符串格式,导致不合需要的排序顺序(19.jpg之后的2.jpg等)。有没有一种快速的方法可以在这种类型的Cake查询中将'title'作为int进行排序?
答案 0 :(得分:3)
不确定这是否是“推荐做法”,但在第一次通过时似乎有效:
$ss_photos = $this->Asset->find('all',array(
'conditions'=>array('kind'=>'photo'),
'order'=>'Asset.title + 0'
));
有什么意见吗?
答案 1 :(得分:0)
解决方案是创建一个隐藏列,负责您的示例图像名称中的订单应该是:00002.jpg,00019.jpg - 这样订单才能正常工作。
如果结果不是太多,我认为用PHP对它们进行排序会更容易(如果你当然使用它:))看到这个natsort()你需要提取一个图像列表并对它们进行排序