正在尝试获取Yii2上非对象的属性
我想根据我使用的用户组id显示数据正在尝试获取Yii2上非对象的属性,yii,yii2,propertyinfo,Yii,Yii2,Propertyinfo,我想根据我使用的用户组id显示数据 Yii::$app->user->identity->group_id 在我的ModelSearch中,如下所示: $query->andFilterWhere([ ...... 'group_id' => Yii::$app->user->identity->group_id, 'created_date' => $this->dreated_dat
Yii::$app->user->identity->group_id
在我的ModelSearch中,如下所示:
$query->andFilterWhere([
......
'group_id' => Yii::$app->user->identity->group_id,
'created_date' => $this->dreated_date,
]);
当我在应用程序中有会话时,它工作,但当我没有会话时,页面显示错误:
Trying to get property of non-object
对于'group\u id'=>Yii::$app->user->identity->group\u id,
如果我没有任何会话,如何在打开页面时将页面重定向到登录页面。多谢各位
编辑
我补充说
if (Yii::$app->user->isGuest) {
return $this->redirect(Yii::$app->user->loginUrl);
}
在我的控制器中访问ModelSearch的每个操作中。您可以为此操作添加访问控制筛选器 在控制器中添加:
public function behaviors()
{
return [
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['ID of your action here'],
'rules' => [
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
或者,您可以直接在操作中添加重定向-例如,将其放在开头:
if (Yii::$app->user->isGuest) {
return $this->redirect(Yii::$app->user->loginUrl);
}
可能是重复的,我已经试过了。但它不起作用,并且在尝试获取非对象的属性时仍然会出错。所以,您做了一些错误的事情,因为如果您正确标识了此错误,则意味着来宾用户可以访问ModelSearch。它已经起作用了,我必须在controller中的每个操作中直接添加重定向。谢谢。我有AccessControl和“如果(Yii::$app->user->isGuest){return$this->redirect(Yii::$app->user->loginUrl);}”在preaction中,代码进入if内部,但不重定向,我得到相同的错误。。。