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


Автор: Ant0ha 28.2.2011, 22:46
Допускает ли паттерн MVC добавление переменных вида прямо в модели?
Т.е. прописывание в модели конструкций типа
Код

$view->assign('var', 'hi!');

Автор: ayax2005 1.3.2011, 08:43
В чём вопрос? Будет ли это работать? Будет. Будет ли это MVC - нет.

Автор: Ant0ha 1.3.2011, 09:02
То, что это будет работать понятно конечно.. 
Просто проблема такая - нужно в методе модели сгенирировать SQL запрос на получение определенных данных, выполнить его и вернуть результат в контроллер. Но в логике генерации запроса за одно получаю некоторые данные, которые необходимо передать в вид, вот и думаю, как же такое реализовать поудобней, чтобы не дублировать ту же логику в контроллере для получения других данных вида...

Что если в модели создать методы для добавления переменных вида, а затем в контроллере извлечь их и перенаправить в вид, примерно так:

Модель:
Код

protected $viewVars = array();

public function addViewVar($varName, $varValue)
{
    $this->viewVars[$varName] = $varValue;
}

public function getViewVars()
{
    return $this->viewVars;
}


Контроллер
Код

$viewVars = $model->getViewVars();
$this->view->assign($viewVars);


Это будет true MVC?)

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