zoukankan      html  css  js  c++  java
  • yii中设置返回上一页的地址returnUrl



    2013-03-23 14:04:32|  分类: yii之全局调用 |字号 订阅

      yii中设置返回操作前的地址:

    一、利用yii中的setReturnUrl和getReturnUrl方法

    yii中如果需要重定向跳转前的地址,可以利用CwebUser中的setReturnUrl()先方法设置,然后跳转后再用getReturnUrl()获得设置的这个地址,跳回去,不会自动跳转。
    public function setReturnUrl($value)
    {
        $this->setState('__returnUrl',$value);
    }

    //返回用户成功登陆后应该跳转的URL。这个属性常用于登陆动作。如果成功登陆,将读取这个属性,然后用它来重定向用户的浏览器。
    //$defaultUrl默认的要返回的URL,如果之前没有设置的话。如果是null,应用入口的URL将被作为默认返回的URL。
    public function getReturnUrl($defaultUrl=null)
    {
        return $this->getState('__returnUrl', $defaultUrl===null ? Yii::app()->getRequest()->getScriptUrl() : CHtml::normalizeUrl($defaultUrl));
    }

    getScriptUrl():返回入口文件的Url


    以CWebUser中的loginRequired方法为例:
    public function loginRequired()
    {
        $app=Yii::app();
        $request=$app->getRequest();

        if(!$request->getIsAjaxRequest())
            $this->setReturnUrl($request->getUrl());  //先设置返回的地址
        elseif(isset($this->loginRequiredAjaxResponse))
        {
            echo $this->loginRequiredAjaxResponse;
            Yii::app()->end();
        }

        if(($url=$this->loginUrl)!==null)
        {
            if(is_array($url))
            {
                $route=isset($url[0]) ? $url[0] : $app->defaultController;
                $url=$app->createUrl($route,array_splice($url,1));
            }
            $request->redirect($url);
        }
        else
            throw new CHttpException(403,Yii::t('yii','Login Required'));
    }

    重定向用户浏览器到登陆页面。重定向之前,当前的URL(如果不是一个AJAX url)将被保存在 returnUrl中,以便用户的浏览器可能会被重定向去到成功登录后的页面。确保你设置了loginUrl 使用户调用此方法后可以被重定向到指定的登录地址调用此方法后,将终止当前的语录处理。


    二、利用传统方法在网址后传入一个reffer参数记录下跳转前的地址

  • 相关阅读:
    首篇
    typedef 的几种用法
    ftp 命令
    (zt)STL中的map与hash_map
    (zt)关于UDP网络游戏服务器的一些探讨
    (zt)UDP编程的时候,一次发送多少bytes好?
    (zt)界面技术概述
    (zt)这是对目前大部分平台都适用的内存对齐规则的定义
    (zt)高性能I/O设计模式Reactor和Proactor
    (zt)ACE高效PROACTOR编程框架一ClientHandle
  • 原文地址:https://www.cnblogs.com/ldms/p/3045491.html
Copyright © 2011-2022 走看看