現在、haxe ターゲティング php を使用して Web サイトをセットアップしていますが、haxe.Web.Dispatchライブラリに問題があります。
doDefault() ルールを実装しようとするまで、すべてがうまく機能していました。
ディスパッチ API には次のルールがあります。
doIndex(){ ... }
doPosts(){y:String, m:String, n:String){ ... }
そして、これらは両方とも正しい Web ページにリダイレクトされます。たとえば、これらは両方とも正常に機能します。
http://foo.com/index
http://foo.com/posts/2013/01/post-title
そして今、私は実装しました
doDefault() {...}
他の URL を 404 ページにリダイレクトするためですが、機能していません。上記の URL にアクセスしても問題なく動作しますが、
http://foo.com/bar
次のエラーが発生します
uncaught exception: DETooManyValues
in file: C:\wamp\www\website\bin\lib\haxe\web\Dispatch.class.php line 191
#0 C:\wamp\www\website\bin\lib\Index.class.php(9): haxe_web_Dispatch->runtimeDispatch(Object(_hx_anonymous))
#1 C:\wamp\www\website\bin\lib\Index.class.php(12): Index->__construct()
#2 C:\wamp\www\website\bin\index.php(9): Index::main()
#3 {main}
ディスパッチのドキュメントによると
対応するメソッド doXXXX が api オブジェクトで見つからない場合、または URL が / の場合、代わりにアクション doDefault が使用されます。デフォルトのアクションがない場合、例外 DispatchError.DENotFound("XXXX") がスローされます (ここでの XXXX は URL 部分名のプレースホルダーです)。
しかし、DETooManyValues 例外については何も述べていません。誰にもアイデアはありますか?