在laravel测试中将参数传递给GET请求

问题描述

在 Laravel 测试中,我想发送带有一些参数的 get 请求,如下所示:

        $response=$this->get(
            route('orders.payment.pay',['order'=>$order->id]),['pay_type','payment_gateway']
        );

但是当我运行它时,我有302 响应中的错误代码。但是当像这样使用它时,它工作正常:

        $response=$this->get(
            route('orders.payment.pay',['order'=>$order->id]).'?pay_type=payment_gateway'
        );

有没有办法像第一种方式一样传递参数?

解决方法

这是 route 助手的签名:

function route($name,$parameters = [],$absolute = true)

您应该向传递给 route 助手的数组或参数添加任何您想要的查询参数:

route('orders.payment.pay',[
    'order' => $order->id,'pay_type' => 'payment_gateway',]);

任何没有替代路由参数的参数都作为查询字符串参数附加。