Какова обычная практика получения поведения (связанного с несколькими моделями) для создания фильтров для SQL-запросов, а затем чтения таблицы, принадлежащей этой модели?
У меня есть функция поведения, которая предназначена для выполнения запроса к базе данных с определенными условиями SQL. В настоящее время я передаю $this->request->data.
У меня проблемы с созданием условий SQL, потому что я не знаю, как получить имя таблицы (которое соответствует модели). Например, см. ниже. Я хочу изменить "BillingCenterDetail", которое является именем таблицы (а также названием модели), на что-то общее, которое я могу использовать в разных моделях. Я хочу, чтобы это имя таблицы производилось автоматически на основе имени модели. Я не уверен, могу ли я использовать для этого ссылку $model.
public function saveWithTimeConstraintCheck(Model $model, $data) {
//FIND ALL RECORDS THAT OVERLAP
$overlapfilter = array(
'BillingCenterDetail.billing_center_id =' => $data['BillingCenterDetail']['billing_center_id'],
'BillingCenterDetail.startdate <=' => $data['BillingCenterDetail']['enddate'],
'BillingCenterDetail.enddate >=' => $data['BillingCenterDetail']['startdate']
);
... после создания фильтра я могу использовать $model->find для выполнения запроса, это должно быть в порядке, потому что это универсально.
$overlapresults = $model->find('all', array('conditions' => $overlapfilter));