Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Libraries > Zend 2 Db/adapter


Автор: vins32 7.4.2015, 17:34
Привет всем, прошу помощи.
Вопрос касается Zend\Db\Adapter
В официальном мануале работают с TableGateway насколько я понял этот паттерн позволяет работать только с одной таблицей в БД, (все помнят Аlbum) 
Собственно вопрос, как организовать адаптер который позволит в модели работать с несколькими таблицами.
Например в одном методе выборка с таблицы shops, в другом методе выборка с таблицы products

Буду очень благодарен за ответ

Автор: Aliance 8.4.2015, 12:11
Это идеалогически не верно: у каждой таблицы д.б. своя модель, причем только одна. Связь между таблицами (моделями) можно сделать нативными методами в Zend\Db\Adapter. Для запросов с join-ами можно использовать метод (пишу на память из 1 версии ZF, думаю во второй он так же остался) что-то типа ->setIntegrityCheck(false)

Автор: vins32 8.4.2015, 22:07
Нормально когда 1 таблица = 1 модель, много моделей которые работают с 1 контроллером например IndexController и 4 модели ?

Автор: Aliance 9.4.2015, 08:30
Конечно, так обычно и бывает. Например этот форум, если представить что просмотр топика это контроллер, то он бы задействовал модель топиков (для получения заголовка топика), модель постов (для получения списка постов в топике), модель пользователя (для получения инфы по авторам постов)...

Автор: vins32 9.4.2015, 21:14
Спасибо, если знаком с ZF2 можно пример адаптера который создаётся в ServiceManager в конфиге module.config.php і в модели делаем конект к конкретной таблице БД. Понимаю суть пример как в коде написать ... 

Автор: vins32 9.4.2015, 21:40
Пример нашел сам вроде что-то такого http://zendframework.ru/forum/index.php?topic=6410.0 
У меня вопрос есть, нормально в модели вызывать ServiceManager ? Я где-то читал что объекты из  ServiceManager нужно вызывать только в Controller.

Автор: Aliance 13.4.2015, 10:48
Вопросы по ZF2 в рамках этого форума можно (и, наверное, лучше) задавать в специальном месте: http://forum.vingrad.ru/forum/forum-329.html
Ну а вообще это все-таки более узкоспециализированная тема, попробуйте спросить по zendframework.ru. Я работал с ним последний раз года 2 назад, сходу не готов вспомнить smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)