Illuminate \ Routing \ Exceptions \ UrlGenerationException:缺少必需的参数

时间:2019-12-03 18:30:03

标签: php laravel phpunit laravel-6.2

我正在使用Laravel 6.2。我有一个命名的路线

Route::get('/dummy/{id}', 'Api\V1\DummyDataController@show')->name('dummy_data_show');

我无法为此编写测试,但收到错误Illuminate\Routing\Exceptions\UrlGenerationException: Missing required parameters for [Route: dummy_data_show] [URI: api/v1/dummy/{id}].

这些是我的尝试(仅相关代码):

$request = $this->withHeaders(
            [
                'Accept' => 'application/json',
                'Authorization' => 'Bearer '.$token,
            ]
        )->json('GET',
            Route('dummy_data_show'),
            [
                'id' => 1,
            ]
        );

还有

$request = $this->withHeaders(
            [
                'Accept' => 'application/json',
                'Authorization' => 'Bearer '.$token,
            ]
        )->json('GET',
            Route('dummy_data_show'),
            1
        );

当然,如果我尝试

$request = $this->withHeaders(
            [
                'Accept' => 'application/json',
                'Authorization' => 'Bearer '.$token,
            ]
        )->json('api/v1/dummy/1');

我没有得到错误。我怎么了谢谢!

1 个答案:

答案 0 :(得分:3)

您没有将任何参数传递给route方法。参数应在括号内。

更改:

Route('dummy_data_show'),
[
    'id' => 1,
]

收件人:

route('dummy_data_show', [
    'id' => 1,
])