2

私のプロジェクトでは、フレームワークを Symfony2 として使用しています。条件が失敗した場合にデフォルトのページにリダイレクトする php 関数を書きたかったのです。だから私の機能はこのようなものでした。

public function validate($value){
    if($value==null){
        return  $this->redirect(
             $this->generateUrl('home_page', array("message"=>""))
        ); 
    }   
}

そして、私はこのように関数を呼び出します。

$this->validate($value);

問題はリダイレクトが起こらないことです。
皆さん、助けてください。リダイレクトしない理由がわかりません。ありがとう

4

2 に答える 2

8

あなたはそれをこのように呼ぶ必要があるでしょう:

$response = $this->validate($value);

if ($response instanceof \Symfony\Component\HttpFoundation\Response) {
    return $response;
}

応答を返す代わりに、カスタムリダイレクト例外をスローして、リダイレクト応答を作成するリスナーを作成できます。

于 2012-07-24T09:18:14.660 に答える
1

リダイレクトするには、呼び出し元のアクションがリダイレクト応答を返す必要があります。つまり、 return の return を返す必要がありますvalidate()

return $this->validate($value);
于 2012-07-24T11:09:43.413 に答える