Модель представляет вашу модель данных и в объектно-ориентированном программировании есть объект, представляющий «сущность» – машину, человека, дом. Например, блог может иметь много постов и каждый пост может иметь много комментариев. Blog, Post и Comment – это все примеры моделей, ассоциированных друг с другом.
Вот простой пример определения модели в CakePHP:
<?php
class Ingredient extends AppModel {
var $name = 'Ingredient';
}
?>
С помощью такого простого определения, модель Ingredient получает всю функциональность, которая нужна вам, для создания запросов с сохранением и удалением данных. Эти волшебные методы унаследованы от родительского класса AppModel. Модель Ingredient расширяет (extends) модель AppModel, которая в свою очередь, расширяет внутренний класс Model. Именно этот класс Model и даёт всю функциональность вашей модели Ingredient.
Промежуточный класс, AppModel пустой и по умолчанию находится в каталоге /cake/. Замещение класса AppModel позволяет вам определить функциональность, которая будет доступна для всех моделей вашего приложения. Для этого вам необходимо создать свой файл app_model.php в корне каталога /app/. Если вы создаете проект, используя Bake, то этот файл будет автоматически сгенерирован.