Сейчас у меня две модели: Product и Service. Оба используют одну и ту же структуру таблицы и одни и те же методы. Однако, когда я обновляю один метод, мне придется проделать то же самое с другой моделью. И это становится беспорядочным, не говоря уже о том, что я вызываю избыточность, и это не лучшая практика.
Я знаю, что модели могут быть связаны с одной и той же таблицей, поэтому мне просто нужно добавить $ useTable = 'stuff'
в модели, и я мог бы добавить поле type
. Однако я не могу понять, как создать «родительскую» модель, поскольку каждая модель расширяет AppModel.
Честно говоря, я почти ничего не знаю о ООП, поэтому я мог упустить что-то очень очевидное и простое.
Что бы я сделал, не зная, как расширить двух потомков (Продукт и Услугу) до родителя (Материал), было бы примерно так:
$this->Stuff->type = 'product';
$products = $this->Stuff->findAvailable();
Но я уверен, что есть гораздо более простой и понятный подход.
Спасибо.