Как работать с логикой базы данных из модели - PullRequest
0 голосов
/ 02 августа 2010

Я создал модель корпоративной системы из диаграммы классов и преобразовал ее в объектно-ориентированный код php.

Теперь у меня есть просто пустая модель, она способна связываться, и соединения обрабатываются.Теперь следующий шаг впереди.У меня есть база данных, и я должен поместить объект в базу данных.

Сейчас у меня недостаточно опыта на моей стороне.У меня есть модель, и так как php рендерит вид и делает одноразовые запросы на рендеринг вида, я немного запутался.Невозможно загрузить все мои сущности из базы данных и заполнить мою модель в памяти, а затем использовать ее, потому что это будет слишком много.

Кто-нибудь знает какие-либо способы загрузки только необходимых данных?в моей модели, а затем использовать его?Возможно предложения книги или статьи?

Спасибо!

1 Ответ

1 голос
/ 02 августа 2010

Похоже, что вы используете "MV" (который не существует), а не "MVC" шаблон проектирования.

Что случилось с вашим контроллером? Ваш контроллер должен направить запрос к объекту модели, который требуется для этого конкретного представления, а затем вы можете использовать ответ по своему усмотрению.

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

Редактировать в ответ на комментарии

У вас есть несколько методов. Если вы используете Zend_Db_Table_Abstract, то вы создаете подкласс этого класса и используете его в качестве модели. Это, наверное, самый простой. Тогда вы просто используете его как свою модель. Установите $_name = "myComments", а затем просто создайте метод с именем getComments.

В вашем методе в вашем подклассе Zend_Db_Table_Abstract вы можете создать свой $ select. Тогда вы просто возвращаете ответ от вашей модели.

Итак

    $rows = $table->fetchAll($select);

А потом просто верните $ строки; Затем вы вернете свои строки в свой контроллер. Вы загрузили свою модель в свой контроллер с помощью $ model = new Comments (); а затем выполните выборку, используя $ result = $ model-> getComments ();

Это немного несоответствие, но это должно показать вам, как вы должны это сделать. Вам просто нужно создать свою модель сейчас.

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