Я использую Cakephp и пытаюсь использовать метод, чтобы убедиться, что наша система бронирования не позволяет двум пользователям бронировать одно и то же назначение. Ex. Пользователь 1 открывает встречу, а Пользователь 2 открывает ее одновременно. Пользователь 1 записывается на прием. Пользователь 2 пытается забронировать его, но система проверяет и видит, что он больше не доступен.
Я предполагаю, что это будет происходить при проверке или в beforeSave (), но не могу понять, как это сделать.
Прямо сейчас я сделал функцию в модели для вызова с контроллера. В контроллере у меня есть:
if ($this->Timeslot->checkIfNotAvailable()) {
$this->Session->setFlash('This timeslot is no longer available');
$this->redirect(array('controller' => 'users', 'action' => 'partner_homepage'));
}
и в модели у меня есть эта функция:
function checkIfNotAvailable($data) {
$this->recursive = -1;
$timeslot = $this->find('all', array(
'conditions' => array(
'Timeslot.id' => $this->data['Timeslot']['id'])
)
);
if ($timeslot['student_id'] == 0) {
//They can reserve it, do not spring a flag
return false;
} else {
//Throw a flag!
return true;
}
}
Я думаю, что я перепутал использование пользовательской проверки, когда она не нужна. И это не работает, очевидно. Есть предложения?
Спасибо!