我有一个控制台命令来生成用户报告。我想从我的web应用程序中调用相同的内容。我使用的是Yi2.0.0测试版,我试着遵循在这篇文章如何在Yii中调用web应用程序操作中的控制台命令?中给出的答案
由于YII2.0的结构与YII1.1非常不同,所以如果我尝试包含命令/userReportController.php .Can,就会出现错误--有人在这方面给我提供了指导?
发布于 2014-08-19 11:47:04
发布于 2017-06-07 09:59:06
我认为这是最简单的解决办法:
$controller = new YourConsoleController(Yii::$app->controller->id, Yii::$app);
$controller->actionYourConsoleAction();
发布于 2016-05-23 13:47:54
使用以下代码:
$application = new yii\console\Application($config);
$application->runAction('controller/action');
我使用这个方法而不是yii
控制台命令,因为我在托管VPS上运行Yii,那里的cron中不支持unix命令,只有php脚本。
当然,要以这种方式运行它而不是控制台,必须首先初始化yii配置:
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/console/config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/common/config/main.php'),
require(__DIR__ . '/common/config/main-local.php'),
require(__DIR__ . '/console/config/main.php'),
require(__DIR__ . '/console/config/main-local.php')
);
https://stackoverflow.com/questions/25355483
复制相似问题