Как правильно использовать group by в CakePHP3 - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу рассчитать количество людей в комнате на основе модели. Поле для резервирования 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'
                ]
            ]
        ]
    ]
]);

1 Ответ

0 голосов
/ 06 сентября 2018

Вы получаете эту ошибку, потому что вы не определили связь в вашей модели.

Cakephp 2.x

Предполагая, что резервирование имеет много-одно отношение с Группой, вы можете определить свою связь в следующем файле, например:

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');
    }
}

Надеюсь, это поможет!

...