Web開発ではプログラム内でジャンプする必要があることが多いですが、thinkphpではredirect関数を使ってリダイレクトを実装するなど、システムに付属しているジャンプ機能を利用してジャンプすることができます。ただし、システムに付属しているジャンプ機能では対応できない場合が多く、ジャンプ機能をカスタマイズする必要があります。
thinkphp では、コントローラーにメソッドを記述することでカスタム ジャンプ関数を実装できます。以下では、簡単な例を使用して、ジャンプ機能をカスタマイズする方法を示します。
指定された URL にジャンプし、ジャンプ中にパラメーターを渡すことができるジャンプ関数を実装する必要があるとします。まずコントローラーにメソッドを定義する必要がありますが、このメソッドのパラメータにはジャンプする URL と渡すパラメータが含まれます。
public function myRedirect($url, $params = []) { $params_str = ''; if(!empty($params)) { $params_str = http_build_query($params); $params_str = '&' . $params_str; } header('Location: ' . $url . $params_str); exit; }
上記のコードでは、最初に渡されたパラメーターをクエリ文字列にアセンブルし、次に URL 全体とパラメーター文字列を結合し、最後にヘッダー関数を使用してジャンプします。ジャンプが成功した場合は、exit 関数を呼び出してプログラムの実行を終了する必要もあります。
カスタム ジャンプ関数を使用する場合、コントローラー メソッドで myRedirect 関数を呼び出すことでジャンプを実現できます。例:
public function index() { $params = [ 'name' => 'thinkphp', 'version' => '5.1' ]; $url = 'https://www.thinkphp.cn'; $this->myRedirect($url, $params); }
上の例では、index メソッドで myRedirect 関数を呼び出してジャンプし、$params という名前のパラメーター配列を渡します。
概要:
ジャンプ機能をカスタマイズすることで、より柔軟で正確なジャンプを実現できます。システムに付属のジャンプ関数ではニーズを満たせない場合は、上記の方法に従ってカスタム ジャンプ関数を作成できます。
以上がthinkphp カスタムジャンプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。