【问题标题】:call static method in another controller在另一个控制器中调用静态方法
【发布时间】:2013-02-08 18:59:06
【问题描述】:

我想在另一个控制器中调用静态方法来执行一些全局实用程序类操作(例如更新文件)。但我收到一条错误消息:

include(AnotherController.php):打开流失败:没有这样的文件或目录

/yii/framework/YiiBase.php(421)

include($className.'.php');

【问题讨论】:

  • 你有文件/yii/framework/AnotherController.php吗?
  • 代码应该从控制器中拉出并放入实用程序类中。
  • 感谢马修和盖伦。 AnotherController 是我自己创建的一个类。如果我创建一个实用程序类,我应该放在哪里?

标签: php yii


【解决方案1】:

Yii 不会自动加载控制器。将以下内容添加到您的配置文件中:

// autoloading model and component classes
'import'=>array(
    'application.controllers.*',
    ...
),

或者,或者,在调用给定控制器之前,添加以下行:

Yii::import('application.controllers.AnotherController');

【讨论】:

  • 有效!谢谢威廉。如果我创建一个全局实用程序类,放置 Yii 的正确位置在哪里?
  • protected/components 文件夹可能是最好的。默认情况下,该文件夹中的所有内容都是自动加载的。或者,您可以创建旧文件夹并将其添加到配置文件中的导入中,就像您对控制器文件夹所做的那样。
猜你喜欢
  • 1970-01-01
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多