PHP-DI调用默认参数为null的方法
我试图对一个有默认参数的方法使用PHP-DI调用,但我得到了这个错误 致命错误:Uncaught Invoker\Exception\NotEnoughParametersException:无法调用可调用项,因为没有为参数1提供值… PS:PHP-DI6PHP-DI调用默认参数为null的方法,php,php-di,Php,Php Di,我试图对一个有默认参数的方法使用PHP-DI调用,但我得到了这个错误 致命错误:Uncaught Invoker\Exception\NotEnoughParametersException:无法调用可调用项,因为没有为参数1提供值… PS:PHP-DI6 Classe Bill { public function index($slug=null,Request $request){ //---- } } use DI\Containe
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);
您需要为参数
$slug
提供一个值
如果参数在非可选参数之前是可选的,则不能忽略该参数。因此,您必须提供其价值。有效:
类TestController{
函数doAction(Request$Request,int$id=null){}
}
不起作用:
类TestController{
函数doAction(int$id=null,Request$Request){}
}
来源:@Mattieu Napoli感谢您给出了最快的答案,但我想知道……首先,是否可以将参数设为null?第二:如果是的话,我可以拿一个片段作为例子,让它发挥作用吗?你可能想从链接中提取一个摘要。它将帮助读者在不必导航到链接的情况下了解线程。感谢您的建议。通过定义一个名为“$slug”的参数来解决此问题