Валидация Exists. Как Написать Критерии?

Есть 3 таблицы:

timetable - расписание,

branch - филиал

и

room - кабинет

связаны по внешним ключам, в каждом филиале несколько кабинетов.

В расписании требуется указать, id филиала и id кабинета.

Оба параметра выбираются пользователем в форме.

Нужно проверить, чтобы в базе был кабинет с выбранным в форме id и внешний ключ кабинета room.branch_id соответствовал id филиала из той же формы.

в модели в rules пишу так:




$criteria = [];

$criteria['condition'] = 'branch_id = :branch_id';

$criteria['params'] = [':branch_id'=>$_POST['branch_id']];


return[['room_id', 'exist', 'className' => 'Room', 'attributeName' => 'id', 'criteria'=>$criteria, 'message' => 'Некорректно указан кабинет.']]



Не работает

для начала не пойму зачем выбирать id филиала если он жёстко связан с id кабинета

смущает эта запись $_POST[‘branch_id’]

поидее надо так




$criteria = new CDbCriteria;

$criteria->condition = 'branch_id = :branch_id';

$criteria->params = [':branch_id'=>$this->branch_id];

/* 


или


$criteria['params'] = [':branch_id'=>$_POST['ClassName']['branch_id']]; 


*/


return[['room_id', 'exist', 'className' => 'Room', 'attributeName' => 'id', 'criteria'=>$criteria, 'message' => 'Некорректно указан кабинет.']];