我已经阅读了很多次文章,但是我仍然无法理解某些部分。文章链接:Model-View-Confusion 第 1 部分:为什么 MVC 中的视图访问模型
下面的代码是我认为我很困惑的代码。
class ListView extends View {
public $model;
public $template;
public $listTemplate;
public $errorTemplate;
public $itemName = 'items';
public function output() {
$result = $this->model->findAll();
if (count($result) > 0) {
$this->template = $this->getTemplate($this->listTemplate);
$this->template->addSet($this->itemName, $result);
} else {
$this->template = $this->getTemplate($this->errorTemplate);
}
return $this->template->render();
}
}
控制器看起来像这样:
class UserController extends Controller {
public $viewName = 'ListView';
public function showList() {
$this->view->model = $this->model->user;
$this->view->listTemplate = 'UserList.tpl';
$this->view->errorTemplate = 'ErrorNoUsers.tpl';
}
}
据我所知,被分配给从命名传递template
的方法继承的方法的结果,并使用来自
像这样命名的再次命名的方法View
getTemplate
View
listTemplate
$this->getTemplate($this->listTemplate)
我感到困惑的是$template
突然有了一个方法,这意味着它变成了一个类。就在这里$this->template->addSet($this->itemName, $result);
和`$this->template->render();
你知道那里发生了什么吗?