2017-01-25 13 views
0

В приложении предварительного доступа Yii2 я пытаюсь разрешить пользователям доступ к странице входа и только странице.Yii2 как и раньше Правило проверки подлинности в конфигурации не работает для страниц

Так я положил в файле конфигурации /common/config/web.php следующее правило

'as beforeRequest' => [ //if guest user access site so, redirect to login page. 
    'class' => 'yii\filters\AccessControl', 
    'rules' => [ 
     [ 
      'actions' => ['login', 'error', 'request-password-reset', 'about'], 
      'allow' => true, 
     ], 
     [ 
      'allow' => true, 
      'roles' => ['@'], 
     ], 
    ], 
], 

Логин, ошибка и запроса на изменение пароля он работает нормально, но не о странице.

Я также пробовал '/ page/about' и 'page/about', но мне не повезло.

Любые идеи по устранению или устранению неполадок.

Благодаря

ответ

0

Это должно быть «вид» вместо «о»

Я сожалею, что я нашел ответ правило это хорошо, но я использую компонент страницы и PageController его получение вид из администратора (база данных) в следующем контроллере

class PageController extends Controller{ 
public function actionView($slug) 
{ 
    $model = Page::find()->where(['slug'=>$slug, 'status'=>Page::STATUS_PUBLISHED])->one(); 
    if (!$model) { 
     throw new NotFoundHttpException(Yii::t('frontend', 'Page not found')); 
    } 

    $viewFile = $model->view ?: 'view'; 
    return $this->render($viewFile, ['model'=>$model]); 
}} 

Так в правиле, что нужно использовать «вид» для всех мнений, оказываемых PageController

0

попробуйте этот код

'as beforeRequest' => [ //if guest user access site so, redirect to login page. 


'class' => 'yii\filters\AccessControl', 
    'rules' => [ 
     [ 
      'actions' => ['login', 'error', 'request-password-reset', 'about'], 
      'roles' => ['@'] 
      'allow' => true, 
     ], 
     [ 
      'allow' => true, 
      'roles' => ['?'], 
     ], 
    ], 
], 

я надеюсь, что он будет работать для вас

 Смежные вопросы

  • Нет связанных вопросов^_^