Php laravel忽略返回重定向()

Php laravel忽略返回重定向(),php,laravel,Php,Laravel,嗨,伙计们,我正试图将用户重定向到银行,但laravel忽略了我的返回重定向 在这里 public function checkout() { $order = $this->makeOrder(); $this->makePayment($order); $pal = resolve(zarinpal::class); $pal -> pay($order); $this->basket->clear();

嗨,伙计们,我正试图将用户重定向到银行,但laravel忽略了我的返回重定向

在这里

public function checkout()
{
    
    $order = $this->makeOrder();

    $this->makePayment($order);

    $pal = resolve(zarinpal::class);

    $pal -> pay($order);

    $this->basket->clear();

    return $order;
}
我在zarinpal类中调用pay():

public function pay(Order $order)
{
    $this->redirectToBank($order);
}

private function redirectToBank($order)
{
    $zarinpal = zarinpal()
        ->amount($order->amount_rial)
        ->request()
        ->callback('http://lanjani/payment/zarinpal/callback')
        ->description($order->code)
        ->mobile($order->phone_number)
        ->send();

    if (!$zarinpal->success()){
        return $zarinpal->error()->message();
    }

    $authority=$zarinpal->authority();

    $input = [
        'authority' => $authority
    ];

    $orderItem = Order::find($order->id);

    $orderItem -> update($input);

    return redirect()->away('https://sandbox.zarinpal.com/pg/StartPay/'.$authority);

}
在redirectToBank()的末尾,用户必须重定向到银行,但它忽略了重定向,并在cheackout()中返回$order。

您错过了返回

public function pay(Order $order)
{
    return $this->redirectToBank($order);
}

我认为重定向返回一个重定向对象。这个对象需要从路由上的方法返回。那么你会回来吗

$pal -> pay($order);
从检验方法和检验方法来看

$this->redirectToBank($order);

从支付方式来看。这显然没有达到你想要的效果。因此,您需要从
redirectToBank
方法返回重定向url,然后清除篮子,然后在签出方法中重定向。

如果您将
dd('here')
放在重定向触发之前,它会触发吗?是的,一切正常,我不知道我是否正确,但当您返回
$this->redirectToBank时会发生什么($order);
从付款方式和
$pal->pay($order);
来自checkout方法。我非常确定重定向返回一个对象,该对象需要从路由上的方法返回。是的,问题是如果我想在我的类中重定向,我在调用controller时,我必须在controllerthanks中返回这个确切的方法,但这也不起作用。我很困惑哦,对不起,我有点困惑不知道您调用的第一个控制器方法是什么。redirect()方法只会创建一个必须由控制器返回的对象,您必须传递该备份并返回该对象。因此,还要添加
$redirect=$pal->pay($order);
然后在底部
返回$redirect
但是checkout返回$order我如何返回$redirectand checkout()在控制器使用的另一个类中很难准确地看到调用的是什么,但是如果你想在调用路由时重定向,你需要返回一个重定向对象(通过调用
redirect()创建)
)在最初调用的控制器中。