2017-06-22 1 views
0

Je veux montrer des données basées sur l'ID du groupe de l'utilisateur, ce qui est j'utiliseEssayer d'obtenir la propriété de non-objet sur Yii2

Yii::$app->user->identity->group_id 

dans mon ModelSearch comme ceci:

$query->andFilterWhere([ 
     ...... 
     'group_id' => Yii::$app->user->identity->group_id, 
     'created_date' => $this->dreated_date, 
    ]); 

Il fonctionne quand j'ai session de l'application, mais quand je n'ai pas l'erreur de la session show page:

Trying to get property of non-object 

Pour 'group_id' => Yii::$app->user->identity->group_id,

Comment faire pour rediriger la page vers la page de connexion lorsque j'ouvre cette page si je n'ai aucune session. Je vous remercie.

EDIT

I ajouté

if (Yii::$app->user->isGuest) { 
      return $this->redirect(Yii::$app->user->loginUrl); 
} 

dans toutes les actions dans mon contoller que l'accès ModelSearch.

+0

double possible de [Quelle est la meilleure façon de rediriger sur la page de connexion dans yii2] (https://stackoverflow.com/questions/33296156/what-is-best-way-to-redirect-on-login-page-in-yii2) – Nue

Répondre

0

Vous pouvez ajouter un filtre de contrôle d'accès pour cette action.

Ajouter dans le contrôleur:

public function behaviors() 
{ 
    return [ 
     'access' => [ 
      'class' => \yii\filters\AccessControl::className(), 
      'only' => ['ID of your action here'], 
      'rules' => [ 
       // allow authenticated users 
       [ 
        'allow' => true, 
        'roles' => ['@'], 
       ], 
      ], 
     ], 
    ]; 
} 

Ou vous pouvez ajouter la redirection directement dans l'action - par exemple placer au début:

if (Yii::$app->user->isGuest) { 
    return $this->redirect(Yii::$app->user->loginUrl); 
} 
+1

Je les ai déjà essayés tous les deux. Mais cela ne fonctionne pas et obtient toujours l'erreur Essayer d'obtenir la propriété de non-objet. – adn

+0

Donc, vous avez fait quelque chose de mal parce que si vous avez correctement identifié cette erreur, cela signifie que ModelSearch est accessible par l'utilisateur invité. – Bizley

+0

Cela fonctionne déjà, je dois ajouter une redirection directement dans chaque action du contrôleur. Merci. – adn