1

在这里使用 Yii。但也许更通用的方法可能适合:

假设我们有一个名为“Theater”的控制器/视图

在剧院内部,我们希望显示几个关于几个特定剧院的静态页面

请考虑以下几点(文档没有回答):

1) 静态页面已经与此应用程序下的其他视图共享相同的布局 * Theatre index.php *(例如,可以包含带有指向每个特定剧院的链接的 cmenu)已经受到main.php 布局的影响。

2) index.php 有一些所有特定页面都有的 HTML。 此外,剧院 index.php作为与所有特定剧院页面共享的一些通用 html 元素。

问题: 每次我们在菜单上选择一个给定的剧院时,我们应该如何渲染那些特定的静态页面?

我的第一个想法是以某种方式使用 index.php 视图并在内部调用 $this->renderPartial('specificTheaterHere'); 但我相信这种方法行不通,因为在 renderPartial 我们应该有一个变量,但是我们应该在哪里更改该变量?我们是否应该为每个静态页面设置一个控制器方法并将局部视图的变量传递给那里?这有意义吗?

我读过这篇不错的文章,但问题仍然存在。 http://www.yiiframework.com/wiki/22/how-to-display-static-pages-in-yii/

注意: 在这里为静态页面创建 LAYOUT 是没有意义的,因为它们已经共享 main.php 布局。

提前致谢

4

1 回答 1

3

[更新] 也看看 Yii 布局。

你不需要那个,你可以使用 actions() 方法来渲染静态页面。在全新的 Yii 安装中,您可以在 SiteController::actions() 中找到它。

在路线:

'page/<view:\w+>' => 'site/page',

在站点控制器中

public function actions() {
  return array(
    'page' => array(
      'class' => 'CViewAction',
      'layout' => 'my_layout',
    ),
 );
}

在此处查看完整文档

现在 /views/site/my_static_page.php 中的任何静态页面都可以通过以下方式访问:http: //mysite.com/page/my_static_page

在此处查看完整的文档和教程: http ://www.yiiframework.com/wiki/22/how-to-display-static-pages-in-yii/

于 2012-06-23T22:54:57.123 回答