2017-03-19 11 views
0

私はこのようなyii2で多くのモジュールを扱っています。AccessControl:yii2のコントローラを開くためにログインする必要があります:

yii_basic 
    -- modules 
     -- admin 
     -- it 
     -- members 

私はユーザー(メンバー)がアプリで送信する電子メールで承認サインを必要とするシナリオを持っています。

たとえば、これはリンク:dzil.local/it/request/update?id=940です。このリンクは、実際にはIDを持つ更新コントローラです。

アクセスするときにログインを強制する必要があります。 しかし、私の問題は、ログインが成功した後、それは私が意味するコントローラー、つまりdzil.local/it/request/update?id=940ではなく、モジュールのactionIndexにリダイレクトされていることです。

これは、クラスRequestControllerです:

public function actionLogin() 
{ 
    if (!Yii::$app->user->isGuest) { 
     return $this->goHome(); 
    } 

    $model = new LoginForm(); 
    if ($model->load(Yii::$app->request->post()) && $model->login()) { 
     if (Yii::$app->user->can('Administrator')) { 
      return $this->redirect(['/admin']); 

     } else if (Yii::$app->user->can('IT')) { // the user is on IT 
      return $this->redirect(['/it']); 

     } else { //defaultnya user common 
      return $this->redirect(['/members']); // the user is member 
     } 
    } 

    return $this->render('login', [ 
     'model' => $model, 
    ]); 
} 

のベストプラクティスを得るために私に助言してください:

class RequestController extends Controller { 
    public function behaviors() { 
    return [ 
    'verbs' => [ 
    'class' => VerbFilter::className(), 
    'actions' => [ 
     'delete' => ['post'], 
     'bulk-delete' => ['post'], 
    ], 
    ], 

    'access' => [ 
    'class' => \yii\filters\AccessControl::className(), 
    'rules' => [ 
     [ 
     'actions' => ['create', 'update', 'delete', 'get-item-detail', 'error'], 
     'allow' => true, 
     ], 
     [ 
     'actions' => ['logout', 'index'], // add all actions to take guest to login page 
     'allow' => true, 
     'roles' => ['@'], 
     ], 
    ], 
    ], 

]; 
} 

私はそれがここから来て失敗したと思います。ログイン後に戻ってルーティングが必要な場合はreturn $this->goBack();を必要な場所

答えて

0

はあなたが追加する必要があります。例:

if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) { 
    return $this->goBack(); 
} 
+0

ええ、私はの$ this - > GOBACK()を返す知っていました。私はmodule afterLoginとbeforeLoginロジックの間で分けました。 –

関連する問題