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');