繁体   English   中英

在视图/站点/索引中包含另一个控制器的视图

[英]Include A View Of Another Controller Within Views/site/index

我不知道如何解决我面临的这个问题。 好吧,所以基本上我有一个默认的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()包含那些文件,因为数据尚未由其控制器生成。 那么实现这一目标的方法是什么?

谁能帮我这个忙。 提前致谢。

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

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

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

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

实际上,您也应该为标题和页脚使用renderPartial

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM