Нужно ли иметь класс модели для каждой таблицы базы данных в 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.