Yii2 — yii \ console \ Application :: getSession ()

Я пытаюсь запустить консольное приложение из терминала, но получаю эту ошибку

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,];

Я попытался удалить сеанс из конфигурации, но все еще получаю ошибку сеанса.

Кто-нибудь может помочь?

2

Решение

Вы не можете использовать 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');
0

Другие решения

Поэтому причина, по которой все опробованные мной варианты не работают, заключается в том, что моя версия Yii2 устарела, и мне пришлось обновить ее до последней версии, чтобы все работало идеально.

Спасибо вам за помощь.

0

В console/config/main.php:

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

Правильный конфиг в консоли env:

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