CakePHP
におけるレンダー、リダイレクト、ディスパッチの違い
http://blog.csdn.net/kunshan_shenbin/article/details/6221219
CakePHP には、ジャンプ、レンダリング、リダイレクト、ディスパッチによく使用される 3 つの関数があります
1. レンダリング関数
public function render($action = null, $layout = null, $file = null)
render
string $action
string $layout
string $file
render レンダー ビュー、コントローラーのアクションが終了すると render メソッドが自動的に呼び出され、アクション名で指示されたビューを出力するため、このメソッドはあまり使用しないかもしれません。同時に、コントローラー内のロジックを呼び出すときに現在のコントローラー内の他のページにジャンプしたい場合は、コントローラー ロジック内の任意の場所でこのメソッドを呼び出してビューを出力することもできます。たとえば、次のように使用できます。 : 削除関数内の
削除が成功すると、リストページのインデックスにジャンプします。次のように書くことができます
public function delete(){
$this->index();
$this->render(null, null, 'index');
}
2. リダイレクト関数
redirect
string $url
ユーザーのリダイレクト。このメソッドは、ユーザーがどこにアクセスし続けるべきかを伝えます。ここで渡される URL パラメーターは、Cake の内部 URL または完全な URL (http://...) にすることができます。 URLをブラウザに送信して再度リクエストする方法です。
3. ディスパッチ関数
ディスパッチ関数は Dispatcher クラスにあり、
$Dispatcher->dispatch($url);
ここでスケジューラはurl 関連するパラメータ (URL を解析するためのルートを含むさらに多くのアクションを呼び出します) を取得し、それらを対応するコントローラに転送し、最後にコントロールを関連するコントローラのメソッドに転送します。このメソッドは主に他のコントローラーにジャンプするために使用されます。同じコントローラーにジャンプするには、render を使用します。
注: ディスパッチを使用してジャンプする場合は、最後に exit を呼び出す必要があります。
App::import('Core', array('Dispatcher')); ...... $dispatcher = new Dispatcher(); $dispatcher->dispatch($this->request,$this->response,array("controller"=>"admins","action"=>"site")); exit();