ThinkPHP は、強力な MVC パターン サポートを提供するオープン ソースの PHP 開発フレームワークで、開発者は堅牢な Web アプリケーションを迅速に開発できます。 Web アプリケーションを開発する場合、ユーザーがログインに成功した後、ユーザー インターフェイスにジャンプするなど、ページ ジャンプが必要になることがよくあります。この記事では、ThinkPHP を使用してページにジャンプし、ページジャンプ機能をカプセル化する方法を紹介します。
1. ページ ジャンプに ThinkPHP を使用する
ThinkPHP には、ページ ジャンプ用の 2 つの組み込み関数が用意されています:
redirect() 関数は、指定された URL アドレスにジャンプするために使用されます。その構文は次のとおりです:
redirect('url', '参数', '状态码')->send();
その中に:
たとえば、http://www.example.com/user/index ページにジャンプする場合、コードは次のとおりです:
redirect('http://www.example.com/user/index')->send();
success() および error() 関数は、ページがジャンプしたときにプロンプト メッセージを表示するために使用されます。成功プロンプト情報には success() 関数が使用され、失敗プロンプト情報には error() 関数が使用されます。構文は次のとおりです:
success('提示信息', '跳转URL', '等待时间')->send(); error('提示信息', '跳转URL', '等待时间')->send();
その中には:
たとえば、成功メッセージを表示して http://www.example.com/user/index ページにジャンプするには、コードは次のとおりです。
success('登录成功', 'http://www.example.com/user/index')->send();
2 . カプセル化ジャンプ ページ転送機能
再利用を容易にするために、ページ ジャンプをカプセル化できます。以下は、単純なジャンプ ページ関数コードです。
/** * 跳转页函数 * * @param string $url 要跳转的URL地址 * @param string $message 信息提示 * @param int $waitTime 等待时间 * @return void */ function jump($url, $message = '', $waitTime = 1) { if (empty($url)) { exit('错误:未指定跳转URL地址!'); } if (!empty($message)) { $message = htmlspecialchars($message); } if ($waitTime == 0) { header("Location: {$url}"); exit; } $css = <<<EOF <style type="text/css"> .jump { text-align:center; padding-top:5%; font-family: 'Microsoft Yahei', Verdana, Arial; font-size:16px; } .jump h3 { font-size:24px; font-weight:bold; } </style> EOF; $html = <<<EOF <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>跳转提示</title> {$css} </head> <body> <div class="jump"> <h3>跳转提示</h3> <p>{$message}</p> <p>等待时间:<span id="wait_time">{$waitTime}</span>秒</p> <p><a href="{$url}">立即跳转</a></p> </div> <script type="text/javascript"> var wait_time = {$waitTime}; var interval = setInterval(function(){ if(wait_time > 0) { wait_time--; document.getElementById('wait_time').innerHTML = wait_time; } else { clearInterval(interval); window.location.href = '{$url}'; } }, 1000); </script> </body> </html> EOF; echo $html; }
上記のカプセル化関数を使用すると、次のコードをコントローラーに実装できます。
public function login() { if($this->request->post()){ $data = $this->request->post(); // 验证码验证 $user = UserModel::where('username', $data['username'])->find(); if(!$user || $user->password != $data['password']){ jump(url('login/index'), '用户名或密码错误', 3); } else { jump(url('user/index'), '登录成功', 3); } } return $this->fetch(); }
上記は、ThinkPHP を使用して、ページを作成し、ジャンプをカプセル化する ページめくり機能のチュートリアル。ラッパー関数を使用すると、別のコントローラーで簡単に再利用できます。
以上がthinkphp ジャンプ ページのカプセル化チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。