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

Pass parameter to GET request in laravel tests

在 Laravel 测试中,我想 发送一个带有一些参数的获取请求 像这样:

        $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',
]);

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