Вызов нескольких экземпляров модели

Nubcoder32

Доброго времени суток форумчане. Прошу помочь, подсказать можно ли выполнить следующую реализацию.

Вопрос 1) Делаю по принципу MVC. Нормально ли в одном контроллере использовать несколько разных моделей?

Вопрос 2) Можно ли в одном контроллере вызывать несколько экземпляров одной и той же модели

Делаю так:
Модель Product делает выборку товаров и приводит их к нужному виду в зависимости от заданных атрибутов

PHP:
  1.  $productModel = new Product();
  2.  
  3.         $attributes = [
  4.  
  5.             ‘setLimit’ => 3, // Добавляет лимит товаров
  6.             ‘getRandom’ => true,
  7.             ‘getLabels’ => true,
  8.             ‘theHundredth’ => true,
  9.  
  10.             ‘similarProduct’ => [
  11.                 ‘mode’=> true,
  12.                 ‘title’=> $productInfo->title,
  13.             ],
  14.  
  15.             ‘wishMark’ => true,
  16.         ];
  17.  
  18.         $productModel->load($attributes);
  19.  
  20.         $similarProduct = $productModel->getProduct();

Правильно ли в 1 контролере каждый раз, когда мне нужно получить некую выборку с разными параметрами делать $productModel = new Product(); новый экземпляр модели и передавать атрибуты? Тоесть в одном контроллере несколько раз вызывается $productModel = new Product(); Можно ли так делать

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

 

mkramer

Можно всё это делать. Только не понятно, что у вас в модели
— Добавлено —
Можно же по разному её написать, если вы самопис рисуете

 

miketomlin

Конечно. На одной странице могут появляться сущности разных типов ;) Другое дело, что модель может быть комплексной, т.е. содержать свойства или идентификаторы сущностей разных типов.

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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *