2018-05-30 16:00:30 3771次浏览 2条回答 0 悬赏 20 金钱

场景是我设置了ACF过滤器,现在以游客身份访问IndexController的actionIndex方法,根据过则,没有权限,要跳转到loginUrl设置的url,即user/login,但是如果我不加[]这个中括号,跳转的url是index/user/login. 加中括号和不加的区别在哪里呢?

补充于 2018-05-30 16:01

图片传不上来,我直接上代码:

'user' => [
            'identityClass' => 'backend\models\User',
            'loginUrl'=>['user/login'],
            'enableAutoLogin' => true,
            'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
        ],
  • 回答于 2018-05-31 17:50 举报
    public function loginRequired($checkAjax = true)
    {
        $request = Yii::$app->getRequest();
        if ($this->enableSession && (!$checkAjax || !$request->getIsAjax())) {
            $this->setReturnUrl($request->getUrl());
        }
        if ($this->loginUrl !== null) {
            $loginUrl = (array) $this->loginUrl;
            if ($loginUrl[0] !== Yii::$app->requestedRoute) {
                return Yii::$app->getResponse()->redirect($this->loginUrl);
            }
        }
        throw new ForbiddenHttpException(Yii::t('yii', 'Login Required'));
    }
    为什么我看的是 都是强制转换 数组了
    
    1 条回复
    回复于 2018-06-07 16:46 回复

    什么意思哦?

  • 回答于 2018-05-30 17:11 举报

    数组[],当前module下的 controller/action; 字符串'',当前控制下的action;

    2 条回复
    回复于 2018-06-07 16:46 回复

    可以具体说一下吗?没看明白

    回复于 2018-06-08 00:37 回复

    你是不是在配置里设置了默认控制器'defaultRoute' => 'index',有的话你改成'defaultRoute' => 'user'试试,源码如楼下写的

您需要登录后才可以回答。登录 | 立即注册
Electricight
助理

Electricight

注册时间:2017-11-20
最后登录:2018-07-16
在线时长:4小时30分
  • 粉丝0
  • 金钱100
  • 威望0
  • 积分140

热门问题