Example #1
0
 /**
  * 路由到另外的页面
  *
  * @param object  $controller       当前跳转的控制器
  * @param string  $url              你想路由到的页面的 URL
  * @param boolean $rememberCurrent  是否记录当前页面的 URL,方便你之后用 jumpBack() 回到这个页面, 比如现在你需要让用户去登陆,登陆完之后你希望能返回当前页面
  *
  * */
 public static function reRoute($controller, $url, $rememberCurrent = false)
 {
     global $f3;
     if ($rememberCurrent) {
         self::setJumpBackUrl(Route::getFullURL());
     }
     // reroute 之前调用 afterRoute() 方法
     if (isset($controller) && is_object($controller) && method_exists($controller, 'afterRoute')) {
         $controller->afterRoute($f3);
     }
     // 如果 URL 不是绝对地址,我们生成绝对地址(静态化的时候保持地址格式一致)
     if (self::$isMakeStaticUrl && !Route::isUrlAbsolute($url) && false === strpos($url, '?')) {
         $url = Route::makeUrl($url, null, false, true);
     }
     if (Route::$enableSessionIdUrl) {
         $url = Route::addParam($url, array(session_name() => session_id()));
     }
     $f3->reroute($url);
 }