Модель класса для всей таблицы базы данных - PullRequest
2 голосов
/ 29 декабря 2010

Необходимо ли иметь класс модели для каждой таблицы базы данных в CakePHP ?

И необходимо ли иметь один контроллер для каждого класса модели?

1 Ответ

6 голосов
/ 29 декабря 2010

Нужно ли иметь класс модели для каждой таблицы базы данных в cakephp?

Как правило, да.Если вы хотите извлечь, изменить или удалить данные из определенной таблицы, то для этого CakePHP может создать модель для этой конкретной таблицы и использовать встроенные методы.Исключениями могут быть:

  • Соединяемые таблицы: Если объединяемые таблицы очень просты, вам не нужно создавать модель для них.
  • Если по какой-то причине вы этого не сделалиВы хотите создать модель для нескольких таблиц и использовать для доступа к ним функцию query другой модели.

Напротив: у вас могут быть модели без таблиц, которые могут быть очень полезны для проверкиформы.У меня никогда не бывает меньше моделей, чем у меня (за исключением таблиц простого соединения).

Необходимо ли иметь один контроллер для каждого класса моделей?

Нет, это не так.Хотя шаблоны MVC диктуют, что каждая модель должна управляться собственным контроллером, бывают случаи, когда один контроллер, обрабатывающий более одной модели, делает код проще.В качестве примера можно привести модель User , которая hasOne Profile и hasMany Address .Вы можете манипулировать всеми 3 моделями из UsersController:

class UsersController extends AppController {
    var $uses = array('User', 'Profile', 'Address');

    function edit_profile() {
        ...
    }

    function change_address() {
        ...
    }
}

Всегда используйте MVC в качестве руководящего принципа.Если вы слишком сильно отклонитесь от архитектуры, все легко развалится.Однако, в конце концов, чистый, организованный и рабочий код - вот что важно.:)

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...