如何在控制台控制器中使用模型


How to use models in console controllers in Yii2?

我已经在控制台文件夹中创建了控制器文件,如下:

<?php
namespace console'controllers;
use Yii;
use yii'console'Controller;
use backend'models'User;
class TestController extends Controller {
    public function actionIndex() {
        echo "cron job  runnning";
        $userDetails = 'backend'models'EndUsers::find()->all();
        echo "<pre>";
    print_r($userDetails);
    exit;
   }
}

但是在控制台运行这个命令时,它会抛出如下错误:

root@user-desktop:/var/www/html/AWCOX/trunk/source/web# php yii test
cron service runnningException 'yii'base'UnknownClassException' with message 'Unable to find 'backend'models'EndUsers' in file: /var/www/html/AWCOX/trunk/source/web/backend/models/EndUsers.php. Namespace missing?' in var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/BaseYii.php:291
Stack trace:
#0 [internal function]: yii'BaseYii::autoload('backend'models'...')
#1
/var/www/html/AWCOX/trunk/source/web/console/controllers/TestController.php(15): spl_autoload_call('backend'models'...')
#2 [internal function]: console'controllers'TestController->actionIndex()
#3 /var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array)
#4 /var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/base/Controller.php(154): yii'base'InlineAction->runWithParams(Array)
#5 /var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/console/Controller.php(119): yii'base'Controller->runAction('', Array)
#6 /var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/base/Module.php(454): yii'console'Controller->runAction('', Array)
#7 /var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/console/Application.php(180): yii'base'Module->runAction('test', Array)
#8 /var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/console/Application.php(147): yii'console'Application->runAction('test', Array)
#9 /var/www/html/AWCOX/trunk/source/web/vendor/yiisoft/yii2/base/Application.php(375): yii'console'Application->handleRequest(Object(yii'console'Request))
#10 /var/www/html/AWCOX/trunk/source/web/yii(27): yii'base'Application->run()
#11 {main}

所以有没有其他的方法来使用/扩展应用程序模型在testcontroller从控制台运行?

在Yii2中,如果您想在控制台中使用模型,那么您应该在console'models'下创建模型,然后您可以使用该模型。

我从这个网站上找到了这个:

http://latcoding.com/2015/08/27/run-controller-yii2-via-console/