【问题标题】:Pass parameter to GET request in laravel tests在 laravel 测试中将参数传递给 GET 请求
【发布时间】:2021-04-28 08:31:30
【问题描述】:

在 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'
        );

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

【问题讨论】:

    标签: php laravel unit-testing laravel-7 laravel-testing


    【解决方案1】:

    这是route 助手的签名:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-27
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      相关资源
      最近更新 更多