如何使用自定义布局并仍然可以使用控制台应用程序?

时间:2013-05-01 17:16:51

标签: yii console

我在Yii中使用自定义布局。应用程序的Web部分中的一切都很好用。然后我尝试运行应用程序的控制台部分来运行一个工作,它说:

异常'CException',消息'Property“CConsoleApplication.layout”未定义。“在/pathToFramework/base/CComponent.php:173

如果我恢复到config / main.php中的默认布局,它会再次运行。我找不到任何有关如何仅为控制台应用程序指定布局的文档。我知道我可以解决它,但不想得到hacky。有没有人知道关于正确的观察到这个?感谢。

1 个答案:

答案 0 :(得分:0)

通常,您不需要在配置中指定布局,而是在控制器中执行此操作,如果您要覆盖的话。这可能就是为什么你的CWebApplication可以处理的事情(你在配置中给它一个layout属性),但你的CConsoleApplication不允许设置该属性。

似乎你的选择是:

  1. 在每个控制器中指定你的布局属性(你不能只使用默认的views / layouts / main.php吗?)
  2. 在仅用于layout系统的配置文件中指定CWebApplication属性,而不是CConsoleApplication
  3. 在特定于layout
  4. 的配置文件中覆盖您的CConsoleApplication媒体资源

    上述任何一项都应该有效。