2010-12-29 2 views

ответ

6

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

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

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

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

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

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

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

    function edit_profile() { 
     ... 
    } 

    function change_address() { 
     ... 
    } 
} 

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

HTH.

+0

Это то, что я хочу Спасибо, что убрал мои смуты ....... –

Смежные вопросы