Yii 如何使用自定义布局并使控制台应用程序仍能正常工作?

Yii 如何使用自定义布局并使控制台应用程序仍能正常工作?,yii,console,Yii,Console,我在Yii中使用自定义布局。在应用程序的web部件中,一切都很好。然后我尝试运行应用程序的控制台部分来运行作业,结果显示: 未在/pathToFramework/base/CComponent.php中定义带有消息“Property”CConsoleApplication.layout“的异常“CException”:173 如果我恢复到config/main.php中的默认布局,它会再次工作。我找不到任何关于如何仅为控制台应用程序指定布局的文档。我知道我能修好它,但我不想变得粗鲁。有人知道正确

我在Yii中使用自定义布局。在应用程序的web部件中,一切都很好。然后我尝试运行应用程序的控制台部分来运行作业,结果显示:

未在/pathToFramework/base/CComponent.php中定义带有消息“Property”CConsoleApplication.layout“的异常“CException”:173


如果我恢复到config/main.php中的默认布局,它会再次工作。我找不到任何关于如何仅为控制台应用程序指定布局的文档。我知道我能修好它,但我不想变得粗鲁。有人知道正确的方法吗?谢谢。

通常情况下,您不需要在配置中指定布局,而是在控制器中指定布局(如果您正在重写内容)。这可能就是为什么您的
CWebApplication
可以处理事情(您在配置中给它一个
layout
属性),但是您的
cConsolleApplication
不允许设置该属性

看起来你的选择是:

  • 在每个控制器中指定layout属性(为什么不能只使用默认视图/layouts/main.php?)
  • 在配置文件中指定您的
    layout
    属性,该配置文件仅用于
    CWebApplication
    系统,而不是
    CConsoleApplication
  • 覆盖特定于
    cConsolleApplication的配置文件中的
    layout
    属性
  • 以上任何一项都应该有效