ホームページ >バックエンド開発 >PHPチュートリアル >PHP Codeigniter の _re map メソッドの概要
PHP Codeigniter
の _remap メソッドの紹介
Codeigniter には、実は見落とされがちな優れたコントローラー層の処理方法があります
それがここで簡単に紹介されている remap です。
実際、CI の URL 制御メソッドの式では、
example.com/index.php/blog/comments/
この形式では、ブログがコントローラーであり、コメントはあなたの方法。
もう 1 つの例は、次のようなパラメーターの受け渡しです。
example.com/index.php/products/shoes/sandals/123
サンダル/123 は、渡される 2 つのパラメーターです。
URI の 2 番目のフラグメントは、コントローラー内のどのメソッドが呼び出されるかを決定します。 CodeIgniter では、_remap() メソッドを使用してこのルールをオーバーライドできます:
public function _remap()
{
// ここにいくつかのコード...
}
注: コントローラーに _remap() というメソッドが含まれている場合、URI に何が含まれているかに関係なく、このメソッドは常に無視されます。このメソッドは、URI フラグメントによってどのメソッドが呼び出されるかを決定するというルールを削除し、メソッド呼び出しのルール (メソッド ルーティング ルール) を再定義できるようにします。
しかし問題は、マニュアルに記載されていることは何の役に立つのかということです。実際には、次の 2 つの実際的な使用方法があります。
1. URL を変更し、メソッドを非表示にします。たとえば、アプリケーションでは、元の URL メソッドは
http://anmsaiful.net/blog/display_successful_message 次に、表示を変更したいと思います。メソッド名は次のとおりです:
http://anmsaiful.net/blog/successful
ただし、表示は成功しましたが、実際には既存の display_payment_message
を呼び出します。メソッド。これには、remap メソッドが必要です。
2 この関数は、次のような単純な関数メソッド制御にも使用できます。
public function _remap($method, $params = array())
{
$user_type = $ _SESSION ['user_type'];
$access_control = $this->validate_access($user_type,$method);
if ($access_control){
$this->$method();
}
else {
$this->show_message();
}
}
まず、ユーザー セッションのレベル $user_type を取り出し、次にユーザーを確認します。メソッド
validate_access このメソッド ($method)
を呼び出す権限がありますか? 権限がある場合、$access_control==true、そうでない場合はエラー メッセージが表示されます
1階 シャーン 2012-04-06