【问题标题】:How the first controller(SiteController) is called in yii demo application?在 yii 演示应用程序中如何调用第一个控制器(SiteController)?
【发布时间】:2015-09-05 16:11:40
【问题描述】:

我是 mvc 环境的新手,这是第一次使用/尝试使用 YII 框架。

使用 yiic 命令创建 webapp 后,我会自动构建整个结构。

我的问题是:

当我在浏览器中键入 localhost/myapplication/index.php 时,我得到了 index.php 页面,但据我所知,首先显示一个 view 是一个 controller 被调用。我希望我是对的。

我知道 SiteController 是主控制器,并且在这个控制器中定义了所有操作。

所以,当我第一次输入 localhost/myapplication/index.php 时,谁调用了 SiteController,我搜索了文件但不幸的是我没有找到任何东西。

我希望我问的是一个有效的问题,并且我在正确的轨道上。

谢谢

【问题讨论】:

  • 你问的是 Yii Version 1 还是 Yii2 ?不清楚
  • 我正在使用的版本 1。

标签: model-view-controller yii


【解决方案1】:

Yii CWebApplication 类有一个 defaultController 属性。默认情况下,此属性已设置为“站点”。这使得SiteController 成为您应用程序的默认控制器。要更改它,您可以在 config/main.php 文件中添加 'defaultController' => 'another'

【讨论】:

  • 非常感谢先生,这就是我想要的
【解决方案2】:

键入localhost/myapplication/index.php 会调用myapplication/protected/controllers 中的SiteController。在这种情况下,您调用actionIndex,通常此操作会渲染包含在myapplication/protected/views/site/index.php 中的index.php(您可以在siteController 的actionIndex 中更改此默认分配)

仅当您正确使用theme 设置/config/main.php 中的theme 参数时,SiteController actionIndex 才会呈现myapplication/theme/themeNAme/view/site/index.php

【讨论】:

  • 非常感谢您宝贵的回答和回复,但我仍然不清楚 SiteController 是如何调用的,谁调用它,如果我写另一个控制器 ABC 并且我希望它被调用怎么办首先加载而不是 SiteController。如何对 SiteController 进行第一次调用/调用。我希望我还在正轨上,如果我偏离正轨,请告诉我谢谢
  • Site/index.php 是 yii 在运行时调用的默认控制器/动作。每次您可以访问 yii 应用程序时,都会执行 myapplication/index.php 并运行 yii 组件配置。如果要更改默认控制器,则必须对其进行配置,如果您想做什么,请参见此链接yiiframework.com/forum/index.php/topic/…
  • 非常感谢先生,这是我想要的。
猜你喜欢
  • 2013-08-16
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
相关资源
最近更新 更多