【问题标题】:How to use correctly group by in CakePHP3如何在 CakePHP3 中正确使用 group by
【发布时间】:2018-09-05 16:08:42
【问题描述】:

我想根据模型Reservation字段Reservation.people(int)来计算一个房间的人数。

错误:

预订未关联到组中

我做错了什么?

$hostel = $this->Hostel->get($id, [
    'contain' => [
        'Room' => [
            'conditions' => [
                'Room.status' => '0'
            ],
            'sort' => [
                'Room.number'
            ],
            'Reservation' => [
                'fields' => [
                    'reservation_room_id' => 'Reservation.room_id',
                    'sum' => 'SUM(Reservation.people)'
                ],
                'conditions' => [
                    'Reservation.status' => '0'
                ],
                'group' => [
                    'Reservation.room_id'
                ]
            ]
        ]
    ]
]);

【问题讨论】:

标签: cakephp group-by cakephp-3.0 query-builder


【解决方案1】:

您收到此错误是因为您没有在模型中定义关联。

Cakephp 2.x

假设 Reservation 与 Group 有多对一的关系,那么您可以在下面的文件中定义您的关联,如下所示

app/Model Reservation.php

class Reservation extends AppModel {
    public $belongsTo = 'Group';

}

Cakephp 3.x

/src/Model/Table/ReservationsTable.php

class ReservationsTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsTo('Groups');
    }
}

希望这会有所帮助!

【讨论】:

  • 请在投票前说明原因。这样我就可以纠正自己了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 2015-10-07
  • 2023-03-24
相关资源
最近更新 更多