闡述在Yii2上實現跳轉提示頁

來源:互聯網
上載者:User

序言

為了讓使用者有更加良好的體驗,在操作成功或者失敗後,來個提示並跳轉頁面,我就在Yii2上實現了這一個效果。在寫這個跳轉提示頁的時候,找資料我發現網上關於這方面的中文資料真的很少,大家也都共用下吧!

需求分析

1、使用者在操作成功或者失敗後,來個提示並跳轉頁面。2、使用這種方式$this->success(),$this->error()調用(仿造Yii2內建 $this->render()載入頁面的方式)。

樣式有點醜,但是功能是好的,要是不喜歡這樣式大家可以自行美化一下!

程式碼分析

1、在控制器的基類Controller.php裡邊增加兩個方法,這麼寫:

/**     * 通用成功跳轉       * @param unknown $url 成功後跳轉的URL     * @param number $sec 自動跳轉秒數     * @return Ambigous      */     public function success($url= [] ,$sec = 3){          $url= empty($url)? ['/admin/main']: $url;        $url= /yii/helpers/Url::toRoute($url);        return $this->renderPartial('../base/msg',['gotoUrl'=>$url,'sec'=>$sec]);    }       /**     * 通用錯誤跳轉     * @param string $msg 錯誤提示資訊     * @param number $sec     * @return Ambigous      */    public function error($msg= '',$sec = 3){        return $this->renderPartial('../base/msg',['errorMessage'=>$msg,'sec'=>$sec]);    }

2、在loginviewsbase的下面建立一個命名為msg.php的頁面,代碼如下:

            

'.$errorMessage.'

';?> 恭喜!操作成功!

該頁將在3秒後自動跳轉!

">立即跳轉 返回上一頁

3、完成以上步驟之後就可以在login模組下的控制器裡邊直接調用了,調用方式如下:

成功的調用方式: return $this->success([‘/site/login’]);

失敗的調用方式: return $this->error(‘資料修改失敗!’);

常見問題

1、跳轉提示的JS寫在如下我注釋的地方了,寫在那的話就不起作用了,得寫在外面才行。

 beginBlock('JUMP_JS')?>        (function(){           //跳轉提示的JS寫在這了。不能寫在這,寫在這裡就不起作用了。         });endBlock();        $this->registerJs($this->blocks['JUMP_JS'],/yii/web/view::POS_END);?>        
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.