Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2无返回重定向路由_Php_Symfony - Fatal编程技术网

Php Symfony2无返回重定向路由

Php Symfony2无返回重定向路由,php,symfony,Php,Symfony,重定向路由必须由控制器操作返回才能工作。例如: function testAction() { return $this->redirectToRoute('homepage'); } 但是,如何能够在action函数之外(从另一个函数)调用重定向呢?比如: 控制器必须返回响应。没有办法(几乎)避免它 您可以在内部函数中使用异常,在控制器中捕获异常并从控制器返回响应。前 function testAction() { try { checkError();

重定向路由必须由控制器操作返回才能工作。例如:

function testAction() {
    return $this->redirectToRoute('homepage');
}
但是,如何能够在action函数之外(从另一个函数)调用重定向呢?比如:


控制器必须返回响应。没有办法(几乎)避免它

您可以在内部函数中使用异常,在控制器中捕获异常并从控制器返回响应。前

function testAction() {
    try {
        checkError();
    } catch(Exception $e) {
        return $this->redirectToRoute('error');
    }
    $this->redirectToRoute('success');
}
然后在
checkError()
函数中抛出一个异常

function checkError() {
    throw new Exception();
}

这是一个基本情况。还有更多,还有更多。

控制器必须返回响应。没有办法(几乎)避免它

您可以在内部函数中使用异常,在控制器中捕获异常并从控制器返回响应。前

function testAction() {
    try {
        checkError();
    } catch(Exception $e) {
        return $this->redirectToRoute('error');
    }
    $this->redirectToRoute('success');
}
然后在
checkError()
函数中抛出一个异常

function checkError() {
    throw new Exception();
}

这是一个基本情况。还有更多,还有更多。

控制器必须返回响应。没有办法(几乎)避免它

您可以在内部函数中使用异常,在控制器中捕获异常并从控制器返回响应。前

function testAction() {
    try {
        checkError();
    } catch(Exception $e) {
        return $this->redirectToRoute('error');
    }
    $this->redirectToRoute('success');
}
然后在
checkError()
函数中抛出一个异常

function checkError() {
    throw new Exception();
}

这是一个基本情况。还有更多,还有更多。

控制器必须返回响应。没有办法(几乎)避免它

您可以在内部函数中使用异常,在控制器中捕获异常并从控制器返回响应。前

function testAction() {
    try {
        checkError();
    } catch(Exception $e) {
        return $this->redirectToRoute('error');
    }
    $this->redirectToRoute('success');
}
然后在
checkError()
函数中抛出一个异常

function checkError() {
    throw new Exception();
}

这是一个基本情况。还有很多,也有很多。

redirectToRoute()总是需要返回,因为它实际上是向浏览器发送一个响应来触发重定向。如果没有从包含redirectToRoute()调用的方法返回任何内容,则重定向不会返回到浏览器,也不会发生重定向。

redirectToRoute()始终需要返回,因为它实际做的是向触发重定向的浏览器发送响应。如果没有从包含redirectToRoute()调用的方法返回任何内容,则重定向不会返回到浏览器,也不会发生重定向。

redirectToRoute()始终需要返回,因为它实际做的是向触发重定向的浏览器发送响应。如果没有从包含redirectToRoute()调用的方法返回任何内容,则重定向不会返回到浏览器,也不会发生重定向。

redirectToRoute()始终需要返回,因为它实际做的是向触发重定向的浏览器发送响应。如果没有从包含redirectToRoute()调用的方法返回任何内容,则重定向不会返回到浏览器,也不会发生重定向。

为什么不这样做:

public function testAction() {
    if (checkError()) {
        return $this->redirectToRoute('homepage');
    } else {
        // return normal response
    }
}

private function checkError() {
    //test something
    if ($error) return true; //I know I could just return $error
    return false;            //just making this clear
}

为什么不这样做:

public function testAction() {
    if (checkError()) {
        return $this->redirectToRoute('homepage');
    } else {
        // return normal response
    }
}

private function checkError() {
    //test something
    if ($error) return true; //I know I could just return $error
    return false;            //just making this clear
}

为什么不这样做:

public function testAction() {
    if (checkError()) {
        return $this->redirectToRoute('homepage');
    } else {
        // return normal response
    }
}

private function checkError() {
    //test something
    if ($error) return true; //I know I could just return $error
    return false;            //just making this clear
}

为什么不这样做:

public function testAction() {
    if (checkError()) {
        return $this->redirectToRoute('homepage');
    } else {
        // return normal response
    }
}

private function checkError() {
    //test something
    if ($error) return true; //I know I could just return $error
    return false;            //just making this clear
}

那样做没有任何意义
redirectToRoute
返回一个
RedirectResponse
对象,您必须对该对象执行某些操作,就其本身而言,在方法中“浮动”是没有用的。也许你可以解释为什么你(认为你)需要这个?那样做没有任何意义
redirectToRoute
返回一个
RedirectResponse
对象,您必须对该对象执行某些操作,就其本身而言,在方法中“浮动”是没有用的。也许你可以解释为什么你(认为你)需要这个?那样做没有任何意义
redirectToRoute
返回一个
RedirectResponse
对象,您必须对该对象执行某些操作,就其本身而言,在方法中“浮动”是没有用的。也许你可以解释为什么你(认为你)需要这个?那样做没有任何意义
redirectToRoute
返回一个
RedirectResponse
对象,您必须对该对象执行某些操作,就其本身而言,在方法中“浮动”是没有用的。也许你可以解释一下为什么你(认为你)需要这个?这个函数是在父类内部定义的。我从不止一个控制器动作中调用它。这不是在每个动作中检查它的更好方法吗?那么我建议使用链接到我的答案的方法。通过处理kernel.exception,您可以在需要时重定向用户。使用可以存储响应的类扩展标准异常。在函数中抛出该异常和所需的响应,并在事件处理程序中将其设置为$event->setResponse()。此函数在父类中定义。我从不止一个控制器动作中调用它。这不是在每个动作中检查它的更好方法吗?那么我建议使用链接到我的答案的方法。通过处理kernel.exception,您可以在需要时重定向用户。使用可以存储响应的类扩展标准异常。在函数中抛出该异常和所需的响应,并在事件处理程序中将其设置为$event->setResponse()。此函数在父类中定义。我从不止一个控制器动作中调用它。这不是在每个动作中检查它的更好方法吗?那么我建议使用链接到我的答案的方法。通过处理kernel.exception,您可以在需要时重定向用户。使用可以存储响应的类扩展标准异常。在函数中抛出该异常和所需的响应,并在事件处理程序中将其设置为$event->setResponse()。此函数在父类中定义。我从不止一个控制器动作中调用它。这不是在每个动作中检查它的更好方法吗?那么我建议使用链接到我的答案的方法。通过处理kernel.exception,您可以在需要时重定向用户。使用可以存储响应的类扩展标准异常。在函数中抛出带有所需响应的异常,并将其设置为$event->se