Nubcoder32
Доброго времени суток форумчане. Прошу помочь, подсказать можно ли выполнить следующую реализацию.
Вопрос 1) Делаю по принципу MVC. Нормально ли в одном контроллере использовать несколько разных моделей?
Вопрос 2) Можно ли в одном контроллере вызывать несколько экземпляров одной и той же модели
Делаю так:
Модель Product делает выборку товаров и приводит их к нужному виду в зависимости от заданных атрибутовPHP:
$productModel = new Product(); $attributes = [ ‘setLimit’ => 3, // Добавляет лимит товаров ‘getRandom’ => true, ‘getLabels’ => true, ‘theHundredth’ => true, ‘similarProduct’ => [ ‘mode’=> true, ‘title’=> $productInfo->title, ], ‘wishMark’ => true, ]; $productModel->load($attributes); $similarProduct = $productModel->getProduct();Правильно ли в 1 контролере каждый раз, когда мне нужно получить некую выборку с разными параметрами делать $productModel = new Product(); новый экземпляр модели и передавать атрибуты? Тоесть в одном контроллере несколько раз вызывается $productModel = new Product(); Можно ли так делать
Конечно можно все упростить и сделать выборку в контроллере, но тогда при необходимости что либо изменить нужно менять во всех контроллерах, а хочется что бы один кусок кода работал на весь сайт, надо открыл и поправил.
mkramer
Можно всё это делать. Только не понятно, что у вас в модели
— Добавлено —
Можно же по разному её написать, если вы самопис рисуете
miketomlin
Конечно. На одной странице могут появляться сущности разных типов Другое дело, что модель может быть комплексной, т.е. содержать свойства или идентификаторы сущностей разных типов.
Можно, но обычно не нужно. Вы либо многократно обращаетесь к методу с разными параметрами, либо однократно обращаетесь к методу комплексной модели, которая возвращает список экземпляров компонентов.