Yii2是在控制台应用程序中给出异常的来宾
在控制台应用程序中,当我使用Yii2是在控制台应用程序中给出异常的来宾,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,在控制台应用程序中,当我使用Yii::$app->user->isGuest时,它给出了以下异常: Exception 'yii\base\UnknownPropertyException' with message 'Getting unknown prop erty: yii\console\Application::user' 我甚至尝试在配置文件的组件数组中添加用户。但它不起作用。知道我做错了什么吗?原因很简单。说明应用程序组件(用户是组件): 用户:表示用户身份验证信息。此组件 仅在
Yii::$app->user->isGuest
时,它给出了以下异常:
Exception 'yii\base\UnknownPropertyException' with message 'Getting unknown prop
erty: yii\console\Application::user'
我甚至尝试在配置文件的组件数组中添加用户。但它不起作用。知道我做错了什么吗?原因很简单。说明应用程序组件(用户是组件):
用户:表示用户身份验证信息。此组件
仅在Web应用程序中可用。请参阅
验证部分了解更多详细信息
所以Yii::$app->user
它在控制台应用程序中不可用
因此,您必须考虑在控制台应用程序使用的模型类中使用此组件。
额外注意:它是由内部使用的,但是,这不会造成任何问题,因为如果保存/创建了模型,并且没有可用的用户,则用户将为空。在控制台应用程序
Yii->$app->user
中不存在。因此,您需要在config\console.php
中配置user
组件
就像
config\console.php
'components' => [
.........
......
'user' => [
'class' => 'yii\web\User',
'identityClass' => 'app\models\User',
//'enableAutoLogin' => true,
],
'session' => [ // for use session in console application
'class' => 'yii\web\Session'
],
.......
]
要检查它是否工作,请使用以下代码
public function actionIndex($message = 'hello world')
{
echo $message . "\n";
$session = \Yii::$app->session->set('name', 'ASG');
if(\Yii::$app->session) // to check session works or not
echo \Yii::$app->session->get('name')."\n";
print_R(\Yii::$app->user);
}
有关您的问题的更多信息:
注意:控制台中没有会话。请发布配置文件