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

为了重定向,调用动作应该返回一个重定向响应。意思是,你应该 returnvalidate()的回报。

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