バージョン 1.1.4 以降、Yii は自動アクションパラメータバインディングのサポートを提供します。つまり、コントローラーアクションは名前付きパラメーターを定義でき、その値は Yii によって $_GET から自動的に設定されます。
この機能を詳しく説明するために、PostController の作成アクションを記述する必要があると仮定しましょう。このアクションでは、$_GET 経由で 2 つのパラメーターを渡す必要があります:
category: 投稿が公開されるカテゴリーの ID を表す整数。
language: 投稿で使用される言語コードを表す文字列。
$_GET からパラメータを抽出するときに、次のような関連する検証コードを記述することができなくなりました:
リーリーアクションパラメータ関数を使用することで、上記のコードに関連するタスクをより簡単に完了できます:
リーリーアクション メソッド actionCreate に 2 つのパラメーターを追加したことに注意してください。これらのパラメータの名前は、$_GET から抽出する名前と一致する必要があります。ユーザーがリクエストで $ language パラメータを指定しない場合、このパラメータはデフォルト値 en を使用します。 $category にはデフォルト値がないため、ユーザーが $_GET で category パラメータを指定しないと、CHttpException (エラー コード 400) が自動的にスローされます。
バージョン 1.1.5 以降、Yii はすでに配列アクションパラメータをサポートしています。使用方法:
class PostController extends CController{ public function actionCreate(){ if(isset($_GET['category'])) $category=(int)$_GET['category']; else throw new CHttpException(404,'invalid request'); if(isset($_GET['language'])) $language=$_GET['language']; else $language='en'; // ...... } }