Yii2 - yii\console\Application::getSession()
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,];
我尝试从配置中删除会话,但仍然收到会话错误。
有人可以帮忙吗?
您不能使用 Application::getSession()
,因为 yii\console\Aplication
不同于 Web 应用程序。
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');
所以我尝试的每个选项都不起作用的原因是我的 Yii2 版本太旧了,我必须升级到最新版本才能使一切正常运行。
感谢您的帮助。
在console/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,
],
],
我正在尝试从终端 运行 控制台应用程序,但收到此错误
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 应用程序。
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');
所以我尝试的每个选项都不起作用的原因是我的 Yii2 版本太旧了,我必须升级到最新版本才能使一切正常运行。
感谢您的帮助。
在console/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,
],
],