Yii2 和以前一样请求配置中的身份验证规则对页面不起作用



在 Yii2 高级应用程序中,我试图允许用户访问登录页面和关于页面。

所以我在/common/config/web.php 配置文件中放入了以下规则

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

登录,错误和请求密码重置它工作正常,但不是关于页面。

我也尝试了"/page/about

"和"page/about",但我没有运气。

任何想法如何修复或解决此问题。

谢谢

它应该是"查看"而不是"关于"

很抱歉,我找到了答案,规则很好,但我正在使用页面组件和页面控制器,它正在从以下控制器中的管理员(数据库)获取视图

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呈现的所有视图使用"view"

试试这段代码

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

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

我希望它对你有用

相关内容

  • 没有找到相关文章

最新更新