[英]Yii get current logged user
为了获得当前用户,我使用Yii::app()->user->name
,当我以用户身份登录时可以。
但是,当cron job executin命令尝试使用Yii::app()->user->name
它的属性“ CConsoleApplication.user”未定义。
如何在我的方法中获取检查, Yii::app()
user
定义操作系统
我尝试使用isset()
但仍然收到相同的错误。
问题是,您不能在控制台应用程序中使用CWebUser。
如果依赖于需要CWebUser的组件,则必须在组件中检测到这一点,并为这种情况创建某种解决方法。 例如,您可以在范围代码中生成一个例外部分,以确保不调用Yii::app()->user
:
public function scopes(){
if (Yii::app() instanceof CConsoleApplication) {
$user = array(''); //no condition
}else{
$user = array(
'condition'=>'id='.Yii::app()->user->id,
);
}
return array(
'user' => $user,
'active' => array(
'condition'=>'status='.self::STATUS_ACTIVE,
), ...
);
}
另一个简单的isset()检查对我有用:
if (!isset(Yii::app()->user))
echo "username not set\n";
return;
控制台输出:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.