如何使用额外参数解析 laravel 容器中的 class?

How to resolve a class in laravel container with extra arguments?

如何使用额外参数解析 laravel 容器中的 class?

无需任何注册即可完美运行:

class myClass
{
    public function __construct(Interf1 $i1, Interf2 $i2)
    {
        //some stuff
    }
}
$mc = app()->make('myClass');

如果你需要这样的东西会发生什么:

class myClass
{
    public function __construct(Interf1 $i1, Interf2 $i2, $x, $y)
    {
        //some stuff
    }
}

有没有像这样的选项:

$mc = app()->make('myClass',[10,20]);

$mc = app()->make('myClass')->with(10,20);

我知道我可以使用 setter,但这不是重点..

是的,这正是您已经编写的第一个版本,但是您错过了必须与构造函数中的参数匹配的键:

$mc = app()->make('myClass',['x' => 10, 'y' => 20]);