Php Laravel 7 redirect away在白色页面上显示重定向url

Php Laravel 7 redirect away在白色页面上显示重定向url,php,laravel,curl,laravel-5,laravel-7,Php,Laravel,Curl,Laravel 5,Laravel 7,我正在从Laravel 7控制器重定向,它在重定向到url之前显示了重定向url。我正在使用以下代码: private function createPayment($session_token) { ... try { $response = Http::timeout(30)->withHeaders($headers)->post($url, $body)->json(); if ($response['statusCo

我正在从Laravel 7控制器重定向,它在重定向到url之前显示了重定向url。我正在使用以下代码:

private function createPayment($session_token)
{
    ...

    try {
        $response = Http::timeout(30)->withHeaders($headers)->post($url, $body)->json();

        if ($response['statusCode'] != '0000') {
            $this->redirectError($response['statusCode'], $session_token);
        }

        $url= $response['bkashURL'];

        redirect()->away($url)->send();
    } catch (\Throwable $th) {
        $this->redirectError($response['statusCode'], $session_token);
    }
}
//重定向错误方法:

private function redirectError($code, $session_token = null)
{
    if ($session_token != null) {
        session()->forget($session_token);
    }

    $message = $this->error($code);

    $url = config('global.api_url_bkash') . 'error/' . $message;

    redirect()->away($url)->send();
}
private function error($code)
{
    switch ($code) {
        case '2001':
            return 'Invalid App Key';
            break;

        case '2002':
            return 'Invalid Payment ID';
            break;
            
    .....
}
//错误方法:

private function redirectError($code, $session_token = null)
{
    if ($session_token != null) {
        session()->forget($session_token);
    }

    $message = $this->error($code);

    $url = config('global.api_url_bkash') . 'error/' . $message;

    redirect()->away($url)->send();
}
private function error($code)
{
    switch ($code) {
        case '2001':
            return 'Invalid App Key';
            break;

        case '2002':
            return 'Invalid Payment ID';
            break;
            
    .....
}
我明白了:


如何防止页面不显示url。

不要使用
send
方法,只需从controller方法返回响应对象即可

公共功能索引()
{
// ...
$url=config('global.api_url');
return redirect()->away($url);
}

您的代码在哪里?在控制器中?为什么要调用
send
?只需返回响应,框架处理将其转换为适当的响应。此处您没有“返回”任何内容。请显示您的
redirectError()
函数是的,我需要重定向而不返回任何内容。此代码正在运行。唯一的问题是它在重定向之前会显示URL几秒钟@Lagbox已尝试不发送,但它不起作用。你可以检查我编辑的问题@zlodes
createPayment
方法在哪里?我认为它不是一个控制器方法(因为它是私有的)。或者从其他控制器方法调用它。在这种情况下,您应该从
createPayment
返回
url
,并在目标控制器方法中返回
redirect()->away($url)
。您需要从routes列表中引用的方法返回响应对象。
redirect()->away(“…”)->send()
即使不是最佳实践,也可以工作。我首先尝试使用return语句,如下所示:
redirect()->away($url)->send()但是当URL出现时,我删除了return语句。我有一些公共方法,但我有一些私有方法,其中该方法在同一个控制器中进行一些计算。删除
send()
调用。2.在私有方法中添加return语句(用于try和catch块)。3.在公共方法中添加return语句。