使用cakephp 3基于第二个表从数据库中查找记录

时间:2017-04-06 12:14:14

标签: php mysql cakephp cakephp-3.0 cakephp-2.3

我有两张桌子"类别"和"项目"

categories -> 
id  |   title
1   |   cat-1
2   |   cat-2 

items ->
id  |   title   |   category_id |   score
1   |   item-1  |   1           |   4
2   |   item-2  |   1           |   5
3   |   item-3  |   1           |   3
4   |   item-4  |   2           |   4
5   |   item-5  |   2           |   5
6   |   item-6  |   2           |   6

我希望通过应用限制(2)获得结果,并在"项目"上按分数排序表格使用cakephp 3 输出像 -

{
    "cat-1": {
        "0": {
            "id": 2,
            "title": "item-2",
            "score": "5"
        },
        "1": {
            "id": 1,
            "title": "item-1",
            "score": "4"
        },
    "cat-2": {
        "2": {
            "id": 6,
            "title": "item-6",
            "score": "6"
        },
        "3": {
            "id": 5,
            "title": "item-5",
            "score": "5"
        }
    }

1 个答案:

答案 0 :(得分:0)

使用contain

$this->Categories->find()
    ->contain([
        'Item' => function($q) {
            return $q->find()
                ->order(['score' => 'asc'])
                ->limit(2);
        }
    ]);

未经测试 - 在iPhone上发表评论。 ;)