cakephp查找与相关字段排序的顺序

时间:2013-08-20 10:58:08

标签: php cakephp model

Array
(
        [Site] => Array
            (
                [id] => 1
                [parent_id] => 0
                [title] => test
                [url] => http://www.test.com
                [slug] => www_test_com
                [keywords] => cpc,seo
                [language_id] => 1
            )
        [SiteMeta] => Array
            (
                [0] => Array
                    (
                        [id] => 1
                        [site_id] => 1
                        [key] => pagerank
                        [value] => 5
                        [created] => 2010-08-03 00:00:00
                    )
             )
)

通过使用cakephp,我调试我的find('all')并将我返回到数组之上。我可以通过查找函数中的订单值对Site字段值进行排序,我也可以使用SiteMeta值

进行排序

有什么想法吗? 感谢

3 个答案:

答案 0 :(得分:2)

我会在模型中将此作为协会的一部分。

$hasMany = array('SiteMeta'=>array('order'=>array('SiteMeta.value'=>'asc')))

你不必在任何地方重复自己。

答案 1 :(得分:1)

您可以使用具有以下订单条件的默认查询:

$result = $this->Site->find('all', array(
      'order'=>array('SiteMeta.value DESC' , 'Site.value DESC'),
      'recursive'=>1));

显然,您可以在数组中放置一个条件来检索正确的结果

答案 2 :(得分:1)

我会这样做(如Docs

所示
$result = $this->Site
  ->find()
  ->contain([
    'SiteMeta' => [
      'sort' => ['SiteMeta.pagerank' => 'ASC']
    ]
  ]);
相关问题