Yii2-yiiconsoleApplication:: getSession()
Я пытаюсь запустить консольное приложение с терминала, но получаю эту ошибку
Calling unknown method: yiiconsoleApplication::getSession()
Это контроллер
class BeanstalkController extends yiiconsoleController {
public function actionIndex() {
    echo 'this is console action';
} }
А это консольная конфигурация
return [
'id' => 'app-console',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'consolecontrollers',
'modules' => [],
'components' => [
    'user' => [
        'class' => 'yiiwebUser',
        'identityClass' => 'commonmodelsUsers',
        'enableAutoLogin' => TRUE,
    ],
    'log' => [
        'targets' => [
            [
                'class' => 'yiilogFileTarget',
                'levels' => ['error', 'warning'],
            ],
        ],
    ],
],
'params' => $params,];
Я попытался удалить сеанс из конфигурации, но по-прежнему получаю ошибку сеанса.
Кто-нибудь может помочь ?
3 ответа:
Вы не можете использовать
Application::getSession(), потому чтоyii\console\Aplicationотличается от веб-приложения.Http://www.yiiframework.com/doc-2.0/yii-console-application.html
Попробуйте добавить компонент сеанса в вашу конфигурацию.
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');