2009-04-06 25 views
6

zendフレームワークを使用してアプリケーションを構築しようとしていて、次のような問題が発生しています:「コントローラのアクションの中には2回呼び出されます。 "Zend Frameworkのアクションが2回呼び出される

ログファイルのエントリを確認することで、これを追跡しました。 1つの要求に対して、ログファイルに2つのエントリがあります。

この問題を引き起こしている可能性のあることを知っていますか?フロントコントローラのディスパッチ処理に関連していますか?

よろしくお願いいたします。

+0

あなたの行動が別の機能をどこかで呼び出しているか、それとも同じ行動をもう一度呼び出すのでしょうか? – karim79

+0

私はこの同じ問題に直面していました。それは時間がかかりました。私は非常に厄介な冗談だと感じてしまいました。 – kta

答えて

1

バグかもしれません。より多くの情報なしで伝えるのは難しい。

アクションメソッドが呼び出されるたびにバックトレースを記録するようにしてください。

<?php 
trigger_error(var_export(debug_backtrace(), true)); 
trigger_error(var_export($_SERVER, true)); 
?> 

あなたはテキストエディタに結果をエクスポートし、そこにそれをムシャムシャ食べるしたいと思うので、これは、エラー・ログにあなたの情報のトンを提供します。そして/または、おそらく、より少ない情報を印刷するコードを変更します。

を探すために物事のカップル:

  • は異なる場所から呼び出されたアクション・メソッドですか?
  • $ _SERVER ['UNIQUE_ID'](またはREQUEST_TIME)は異なっていますか?

unique-idが異なる場合、サーバーへの2つの要求が行われました。そうでない場合は、バックトレースから把握してください。

2
前方

またはアクションスタックは

2

試みを理由とあなたのコードがrunned方法を確認するためにデバッガ(例えばXDebugを)を使用することであってもよいです。 ディスパッチャーに注目すると、何かが発生していて、要求アクションがディスパッチされていないため、再度実行されます。

1

私たちも同様の問題を抱えていました。いくつかのアクションは2回実行されました。多くのデバッグやグーグル後、問題がZFdebugのバグであることが判明しました。インストールされたthis patchとすべてが正常に戻った。これが他の人に役立つことを願っています

5

Chrome拡張機能Webug(Google ChromeのFirePHP拡張機能)が有効になっているときに、その操作が2回要求されたことがわかりました。

+0

これがどれほど役立ったかは私にはわかりません。私はこれを見て、このスレッドであきらめていただけです。ありがとうございました。この拡張機能を持っているとどんな混乱が2度目の要求です。ホウとにかく、それは非常に感謝します。これも私の問題でした。 –

+0

ありがとうございました、二重の要求は私を狂ったように運転していましたが、確かにFirePHPでした(私の場合、Firefoxで)---修正、私はFFでFirePHPを持っていません、それはFireBug自体で2番目の呼び出しを引き起こしました – Peter

1

Chrome 17.0.x、Webug、Zend Framework 1.11.1を使用していますが、引き続きこの問題が発生しています。私は提案したようにWebugを無効にし、アクションは一度だけ呼び出されました。

これはWebugのバグだと思います。

+0

Webugのこのエラーをお詫びします。現在のバージョンでは修正されています。 – fedosov

関連する問題