订单'包含' CakePHP 3.x中的模型

时间:2016-07-05 13:12:47

标签: model cakephp-3.x contain

我在Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36中有多个function fetch($url) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_USERAGENT => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36', CURLOPT_RETURNTRANSFER => 1, CURLOPT_TIMEOUT => 5, CURLOPT_VERBOSE => 0, CURLOPT_SSLVERSION => 3, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, ]); $page = curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return array($code, $page); } list ($code, response) = fetch('https://fonts.googleapis.com/css?family=Open%20Sans'); if ($code == 200) { echo $response; } else { echo 'Unable to fetch content: ' . $code; echo 'Response: ' . $response; } 现在我想在我的Things编辑操作中对它们进行排序 - 我可以在我的编辑中访问AnotherThing ,但我想以不同的方式对它们进行排序(而不是对它们的ID),例如AnotherThing Controller

这里最好的做法是什么?我用

试了一下
Things

但没有改变。有什么想法吗?

2 个答案:

答案 0 :(得分:22)

重写文档。遗憾!

无论如何,如果有人寻找答案,这里是: http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#sorting-contained-associations

修改

  

加载HasMany和BelongsToMany关联时,可以使用   sort选项,用于对这些关联中的数据进行排序:

$query->contain([
    'Comments' => [
        'sort' => ['Comment.created' => 'DESC']
    ]
]);

答案 1 :(得分:2)

如果您在关联的表格中定义了一些自定义查找程序方法,则可以在 contains()中使用它们。对于您的情况,您可以解决此问题,如下所示:

$query->contain([
        'Comments' => function ($q) {
           return $q->order(['created'=>'DESC']);
        }
    ]);