1

我正在尝试对具有默认参数的方法使用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);
4

2 回答 2

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

于 2019-07-30T20:41:58.667 回答
0

您需要为参数提供一个值$slug

当一个参数在非可选参数之前是可选的时,它不能被省略。所以你必须提供它的价值。

于 2019-04-02T19:25:10.387 回答