ZendFrameworkってどうよ?
■ このスレッドは過去ログ倉庫に格納されています
0155nobodyさん
2007/03/25(日) 02:34:38ID:07q9VATM奇遇だね。今日おれも同じコトやってたw
Actionが見つからない場合はは__callが呼ばれるので
そこで404ページを出せばOKだけど
問題はControllerだよね。
省略された場合はデフォルトコントローラー(index)が呼ばれて、
ないコントローラーが呼ばれた場合デフォルトでは何も起こらない(本当は例外が投げられてるけど)じゃないですか?
Dispatcherまわりをもっとよく調べれば簡単な解決策あるかもしれないけど、とりあえず強引に解決してみた。
まずZend_Controller_Frontで
$controller->setParam('useDefaultControllerAlways',true);
で、ないコントローラーが呼ばれた場合もデフォルトのコントローラーが呼ばれるようにして
indexControllerのinit()で
$controller_name=$this->getRequest()->getControllerName();
$request_params=$this->getRequest()->getParams();
if($controller_name != $request_params['controller']){
$this->__call();
}
とかやって実際にリクエストされたコントローラー名と呼ばれたコントローラーが違った場合は
__callを呼んで404ページを呼び出すようにした。
こんな感じじゃ駄目ですか?
もっと簡単な方法あったら伝授お願いします。
どうもDispatcherっていうのが馴染みがないせいか、イマイチよくわからなくて・・・
■ このスレッドは過去ログ倉庫に格納されています