Да, вы можете создать модель с именем BigAnimal и затем определить $ useTable = 'animals';Затем определите beforeFind и beforeSave, чтобы каждый раз устанавливать тип на «большой».Затем вы можете сделать то же самое для модели SmallAnimal.Вот пример
class BigAnimal extends AppModel {
var $useTable = 'animals';
function beforeFind($queryData) {
// set type to big here
}
function beforeSave() {
// set type to big here
}
}
Хотя это способ, которым вы можете достичь этого, кажется, что было бы лучше держать от 1 до 1 модель к столу.Затем вы можете добавить необходимые функции для запроса больших и маленьких животных из одной модели.Это держит код немного чище.Так что-то вроде:
class Animal extends AppModel {
function findBigAnimals() {
return $this->find('all', array('conditions' => array('type' => 'big')));
}
function findSmallAnimals() {
return $this->find('all', array('conditions' => array('type' => 'small')));
}
}