我正在尝试对具有默认参数的方法使用 PHP-DI 调用,但我收到此错误
致命错误:未捕获的调用程序\异常\不够参数异常:无法调用可调用对象,因为没有为参数 1 提供值...
PS : PHP DI 6
Classe Bill
{
public function index($slug=null,Request $request){
//----
}
}
use DIContainerBuilder;
$containerBuilder = new ContainerBuilder;
$container = $containerBuilder->build();
$controller = 'Bill' ;
$method = 'index';
$parameters = [];
$response = $container->call([$controller,$method], $parameters);
作品:
class TestController {
function doAction(Request $request, int $id = null) {}
}
不起作用:
class TestController {
function doAction(int $id = null, Request $request) {}
}
来源: https://github.com/PHP-DI/Slim-Bridge/issues/37#issuecomment-368954250
为参数 $slug
提供一个值。
当参数在非可选参数之前是可选的时,不能省略它。所以你必须提供它的价值。