我有一个存储库和一个雄辩的存储库,请参阅代码。现在我想通过 app->make()
将 var 传递到构造函数中
这可能吗,我怎样才能实现?
AppServiceProvoder:
app()->bind(TestRepository::class, EloquentTestRepository::class);
应用:
app()->(TestRepository::class)->getItem(TestModel::TEST_ITEM);
class EloquentTestRepository implements TestRepository {
__construct($var){
// do something with the $var
}
}
尝试:
app()->(TestRepository::class,['test'])->getItem(TestModel::TEST_ITEM);
public function __construct( $test)
{
echo $test;
}
Error:
IlluminateContractsContainerBindingResolutionException: Unresolvable dependency resolving [Parameter #0 [ <required> $test ]]
溶液:在应用服务提供商中:
app()->bind(FrequentieRepository::class,
function($test){
return new EloquentTestRepository($test);
});
第二个参数可以是参数数组,请在此处检查。
照明/基础/应用
/**
* Resolve the given type from the container.
*
* (Overriding Container::make)
*
* @param string $abstract
* @param array $parameters
* @return mixed
*/
public function make($abstract, array $parameters = [])
{
$abstract = $this->getAlias($abstract);
if (isset($this->deferredServices[$abstract]) && ! isset($this->instances[$abstract])) {
$this->loadDeferredProvider($abstract);
}
return parent::make($abstract, $parameters);
}