我正在尝试对具有默认参数的方法使用 PHP-DI调用,但出现此错误
致命错误:未调用Invoker \ Exception \ NotEnoughParametersException:无法调用可调用对象,因为未给参数1赋值...
PS:PHP-DI 6
Classe Bill
{
public function index($slug=null,Request $request){
//----
}
}
use DI\ContainerBuilder;
$containerBuilder = new ContainerBuilder;
$container = $containerBuilder->build();
$controller = 'Bill' ;
$method = 'index';
$parameters = [];
$response = $container->call([$controller,$method], $parameters);
答案 0 :(得分:1)
作品:
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
答案 1 :(得分:0)
您需要为参数$slug
提供一个值。
如果参数在非可选参数之前是可选的,则不能省略。因此,您必须提供其价值。