0

我不知道如何解决我面临的这个问题。好的,所以基本上我有一个默认的 view/site/index.php 视图文件,它正在生成主页。现在我已经构建了两个独立的模型及其关联的控制器和视图。我想将控制器的这些视图包含在默认主页视图中,即views/site/index.php。这有什么意义吗?

所以我的主页分为几个部分。整个站点的页眉和页脚部分都是相同的,这就是为什么我将它们写在 /themes/brushed/layouts 文件夹中单独文件下的原因。那些加载得很好。

我所说的两个控制器被命名为 FrontPageCategoriesController.php 和 TopProductsController.php。他们正在各自的视图文件夹中生成各自的视图文件,即 index.php。

我将如何将这些视图文件 (index.php) 包含到主站点视图文件 (views/site/index.php) 中。我只是不能使用 include_once() 包含这些文件,因为数据正在由其控制器生成。那么实现这一目标的方法是什么?

谁能帮我解决这个问题。提前致谢。

4

1 回答 1

0

首先,您应该将数据生成从控制器转移到模型。控制器应该只将您的输入参数连接到模型并将其传递给视图。原因是您想重用模型,而不是控制器。请记住,控制器绑定到页面请求,而模型则没有。

然后只需使用您的模型来获取数据并renderPartial呈现数据。例如:

$categories = FrontPageCategories::model()->findAll();
$this->renderPartial('/frontPageCategories/index', array(
    'categories' => $categories,
));

事实上,如果它们不依赖于当前页面中的某些参数,则可以直接从视图中获取模型中的类别。

实际上,您也应该使用renderPartial页眉和页脚。

于 2013-09-27T07:26:47.640 回答