ホームページ  >  記事  >  バックエンド開発  >  Yii ノート ---リダイレクト、yii---redirect_PHP チュートリアル

Yii ノート ---リダイレクト、yii---redirect_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:58:591568ブラウズ

Yii の注意事項---リダイレクト、yii---リダイレクト

Yii のリダイレクト メソッドは、CControler と CHttpRequest の両方で定義されています。CController のリダイレクトは、CHttpRequest のリダイレクト メソッドを呼び出します。私たちが通常呼んでいるのは、CControoler のリダイレクト メソッドです

framewok/web/CController での定義 リーリー

パラメータの説明:

@url: ブラウザがジャンプする URL リンクを指定します。 $url が配列の場合、配列の最初の要素はコントローラー/メソッド [コントローラー/アクション] で構成され、残りの部分は GET パラメーターとみなされます。 name と value のペアを指定し、createUrl メソッドを呼び出して URL を生成します。

文字列の場合は、framework/web/CHttpRequest.php のリダイレクト メソッドを直接呼び出します。

@terminate: リダイレクト呼び出し後に現在のアプリケーションを終了するかどうか。

@statusCode: HTTPステータスコードを示します。デフォルトは302リダイレクトです

array_splice 関数について:

配列の一部を削除して他の値に置き換える 上記の array_splice($url,1) は、$url 配列の最初の要素を削除し、GET パラメーターの値を取得することを意味します。 リーリー

createUrl 関数について: この関数は、CController.php と CurlManager.php のリダイレクトなどの多くの場所でそれぞれ定義されています。最終的な定義は CurlManager.php にあります。

CController での createURL の定義は次のとおりです:

リーリー

ここからいくつかの状況を確認できます:

1. リダイレクトがパラメーターをとらず、$route が空の場合、現在のコントローラーの現在のメソッドにリダイレクトされます $route=$this->getId().'/'.$this->getAction( ) ->getId();

2. $route に '/' がない場合、例えば $this->render('index',array('post'=>$questions)); の場合、プログラムはコントローラーなしでメソッドを接続するだけです。現在のコントローラーのメソッド ID を自動的に取得します

3. ルートに「/」文字がありますが、最初の位置になく、現在のコントローラーがモジュール内にあるかどうかを確認します。たとえば $this->redirect(array('step/show') ,'id'=>1 )); この場合、createUrl でメソッドを呼び出す場合、プログラムはモジュールかどうかを自動的に判断します。モジュールのメインコントローラーに最初の文字「/」文字を追加できます。

そして、プログラムは最後に $route の前後の / 文字を削除します。

framework/web/CHttpRequest.php の定義

リーリー

CController のリダイレクトの $url パラメーターが配列でない場合、$url が '/' で始まらない場合、関数は直接呼び出されます。この状況では、モジュール内でリダイレクトが失敗します。

そこでお勧めします CController.phpでリダイレクトメソッドを呼び出す際、パラメータとして

array

が渡されます これから、リダイレクト メソッドが最終的に PHP ネイティブ ヘッダー関数を呼び出すことがわかります

Yii::app()->end(); は、php の exit() 関数を直接呼び出します。

http://www.bkjia.com/PHPjc/976449.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/976449.html技術記事 Yii の注意事項---リダイレクト リダイレクト、yii---リダイレクト Yii のリダイレクト メソッドは CControler と CHttpRequest の両方で定義されています。CController のリダイレクトは CHttpRequest... のリダイレクト メソッドを呼び出します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。