Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2-yii\console\Application::getSession()_Php_Yii2_Console Application_Yii2 Advanced App - Fatal编程技术网

Php Yii2-yii\console\Application::getSession()

Php Yii2-yii\console\Application::getSession(),php,yii2,console-application,yii2-advanced-app,Php,Yii2,Console Application,Yii2 Advanced App,我正试图从终端运行控制台应用程序,但遇到此错误 Calling unknown method: yii\console\Application::getSession() 这是控制器 class BeanstalkController extends \yii\console\Controller { public function actionIndex() { echo 'this is console action'; } } 这是控制台配置 return [ 'id' =

我正试图从终端运行控制台应用程序,但遇到此错误

Calling unknown method: yii\console\Application::getSession()
这是控制器

class BeanstalkController extends \yii\console\Controller {

public function actionIndex() {

    echo 'this is console action';
} }
这是控制台配置

return [
'id' => 'app-console',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'console\controllers',
'modules' => [],
'components' => [
    'user' => [
        'class' => 'yii\web\User',
        'identityClass' => 'common\models\Users',
        'enableAutoLogin' => TRUE,
    ],
    'log' => [
        'targets' => [
            [
                'class' => 'yii\log\FileTarget',
                'levels' => ['error', 'warning'],
            ],
        ],
    ],
],
'params' => $params,];
我试图从配置中删除会话,但仍然收到会话错误


任何人都可以提供帮助?

您不能使用
Application::getSession()
,因为
yii\console\Aplication
与web应用程序不同

尝试将会话组件添加到配置中

return [
    'id' => 'app-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'console\controllers',
    'modules' => [],
    'components' => [
        'user' => [
            'class' => 'yii\web\User',
            'identityClass' => 'common\models\Users',
            'enableAutoLogin' => TRUE,
        ],
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'session' => [ 
            'class' => 'yii\web\Session'
        ],
    ],
    'params' => $params,
];
并将其用作组件

Yii::$app->session->get('session');

因此,我尝试的每一个选项都不起作用的原因是我的Yii2版本很旧,我必须升级到最新版本才能让一切都正常工作


谢谢你的帮助

控制台/config/main.php
中:

return [
   'components' => [
       'user' => null,
       // and put there other components which use a PHP-session
    ]
]

控制台环境中的正确配置为:

'components' => [
            'user' => [
                'class' => 'yii\web\User',
                'identityClass' => 'app\models\User',
                'enableSession' => false,
                'enableAutoLogin' => false,
            ],
        ],

参考:如果我必须从common\models\Users中删除Yii::$app->getSession()?