Yii 控制台应用程序不会自动将模型导入为 Web 应用程序
Yii Console Application does not auto-import Model as web appliccation
这是我的 console.php 与 main.php
相同
return array(
'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
'name' => 'My Console Application',
// preloading 'log' component
'preload' => array('log'),
// autoloading model and component classes
'import' => array(
'application.models.*',
'application.components.*',
'application.extensions.*',
),
Web 应用程序访问这些功能没有问题。但是,控制台应用程序产生错误
Fatal error: Call to undefined method Myfunction::get_all_recipients()
在
也可以找到对这个问题的讨论
https://github.com/yiisoft/yii/issues/2344
也尝试了建议
Yii Command Line Does Not Autoload Models
但它仍然没有导入模型 类。
第二种解决方案应该可行,但有时我会使用另一种方法。在控制台命令中添加以下内容:
Yii::import('application.models.YourModel');
或
Yii::import('application.models.Subfolder.YourModel');
例如,如果它位于子文件夹中;
这应该放在处理您的代码之前。这只会自动加载您当前命令需要的模型或 类。
这是我的 console.php 与 main.php
相同return array(
'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
'name' => 'My Console Application',
// preloading 'log' component
'preload' => array('log'),
// autoloading model and component classes
'import' => array(
'application.models.*',
'application.components.*',
'application.extensions.*',
),
Web 应用程序访问这些功能没有问题。但是,控制台应用程序产生错误
Fatal error: Call to undefined method Myfunction::get_all_recipients()
在
也可以找到对这个问题的讨论https://github.com/yiisoft/yii/issues/2344
也尝试了建议
Yii Command Line Does Not Autoload Models
但它仍然没有导入模型 类。
第二种解决方案应该可行,但有时我会使用另一种方法。在控制台命令中添加以下内容:
Yii::import('application.models.YourModel');
或
Yii::import('application.models.Subfolder.YourModel');
例如,如果它位于子文件夹中;
这应该放在处理您的代码之前。这只会自动加载您当前命令需要的模型或 类。