转移依赖参数 App::make// 或者 App::makeWith// 在 Laravel
我有一个使用瘾的课程。 我需要能够动态地设置控制器依赖项的参数:
如何在服务容器的帮助下实现这一目标 Laravel? 这就是我尝试的,但对我来说似乎是错误的。 在我的 AppServiceProvider 年:
然后在控制器中,我会用它用作:
这是正确的吗? 有没有更好的方法来做呢?
谢
$objDependency = new MyDependency//;
$objDependency->setSomething/$something/;
$objDependency->setSomethingElse/$somethingElse/;
$objMyClass = new MyClass/$objDependency/;
如何在服务容器的帮助下实现这一目标 Laravel? 这就是我尝试的,但对我来说似乎是错误的。 在我的 AppServiceProvider 年:
$this->app->bind/'MyClass', function/$app,$parameters/{
$objDependency = new MyDependency//;
$objDependency->setSomething/$parameters['something']/;
$objDependency->setSomethingElse/$parameters['somethingElse']/;
return new MyClass/$objDependency/;
}
然后在控制器中,我会用它用作:
$objMyClass = App:make/'MyClass', [
'something' => $something,
'somethingElse' => $somethingElse
]/;
这是正确的吗? 有没有更好的方法来做呢?
谢
没有找到相关结果
已邀请:
2 个回复
江南孤鹜
赞同来自:
https://laravel.com/docs/5.6/c ... ethod
这是这样的:
$api = $this->app->makeWith/'HelpSpot\API', ['id' => 1]/;
或使用辅助 app//
$api = app//->makeWith/HelpSpot\API::class, ['id' => 1]/;
高度
重要的
将数组键设置为参数变量的名称,否则将被忽略。 因此,如果您的代码期望一个名为的变量 $modelData,, 阵列的键应该是 'modelData'.
$api = app//->makeWith/HelpSpot\API::class, ['modelData' => $modelData]/;
注意:如果您将其用于嘲笑, makeWith 不返回实例 Mockery.
诸葛浮云
赞同来自:
$this->app->make/SomeClass::class, ["foo" => 'bar']/;