2012-04-16 3 views
0

В моем приложении у меня есть много методов, которые обычно используют мои контроллеры. Сначала я скопировал их на контроллеры, после чего узнал, что я должен поместить их в AppController. Итак, я. достичь этих методов из производных контроллеров «$ this-> commonmethod»Использование нескольких таблиц базы данных в CakePHP

Методы, которые я положил в AppController, создают разные типы данных, , поэтому мне нужно поместить их в 4-5 разных таблиц в моей базе данных. Большинство таблиц не имеют отношения друг к другу.

Но большинство моих контроллеров будут использовать эти таблицы для извлечения связанных данных для них.

(я проверил примеры в поваренной книге, есть примеры о ведении блога, категории и теги. Если таблицы имеют отношения между ними)

  1. Если я кладу общий код контроллера в плагин или компонент? Или какими будут критерии принятия решения?
  2. Возможно ли использовать несколько таблиц базы данных из контроллера или компонента?
  3. Допустимы ли источники данных или их поведение для этого случая.

Спасибо заранее

ответ

1

Трудно сказать, какой будет лучший подход, поскольку мы мало знаем о структуре базы данных, методах контроллера и способах их использования.

Но один из ваших вопросов очень проста:

Можно ли использовать несколько таблиц базы данных из контроллера или компонента?

Да, это возможно. Просто создайте модель для каждой таблицы (используйте public $useTable = 'tablename, если торт не может автоматически определить имя таблицы из ваших имен моделей). Затем, в AppController (учитывая, что ваш код останется там), используйте это:

public $uses = array('List', 'all', 'models', 'you', 'need'); 
+0

Большое спасибо. Это быстро решило мою проблему. Теперь мой AppController использует 3 разных модели для 3 таблиц. – trante

1

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

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