2

我将 PHP-DI 与 Slim 框架一起使用。在 Slim 中,您可以通过在其周围放置括号来使路线段成为可选。现在我在省略可选路由段时设置了 PHP-DI,我收到此错误:

Type: Invoker\Exception\NotEnoughParametersException
Message: Unable to invoke the callable because no value was given for parameter 1 ($limit)

这是我的路线:

$app->get('/api2/products[/{limit}]', ['\App\Controllers\SampleProductController', 'show']);

我在 PHP-DI 文档中找不到任何关于可选部分的内容,只是如何获取命名段的值。

4

1 回答 1

3

PHP-DI 作者在这里。这是一个错误:)

这是我不久前在这里修复的:#521但似乎我没有在所有地方应用相同的逻辑(例如在所有框架集成使用的 Invoker 包中)。

我已打开#562来跟踪此错误,请查看它以获取更多信息。

同时,作为一种解决方法,您确实可以按照评论中的建议将参数移动到方法的末尾。

于 2017-12-12T18:01:10.500 回答