如何通过服务容器将参数传递给构造函数? - php

我有一堂课,可以召集第三方付款解决方案。

作为其一部分,存在各种商人ID /共享秘密参数。
这些将取决于谁登录了该应用程序。

构建类时,我正在使用的类在构造函数中获取此信息。有没有办法在服务提供者中传递此信息,也许像这样:

 $this->app->bind( 'App\BokaKanot\Interfaces\BillingInterface',function ($merchantId)
 {
    return new KlarnaBilling($merchantId);
 } );

如果是这样,是否仍然可以通过构造函数来执行此操作,或者我是否需要手动使用App:make。如果必须使用App::make,如何将其隐藏在调用类中?

还是应该重构我正在使用的类,以使其在构造函​​数中不需要此类,并且可能具有init方法?

参考方案

您可以将参数传递给App::make并将参数传递给构造函数,如下所示:

$this->app->bind( 'App\BokaKanot\Interfaces\BillingInterface',
                   function( $app, array $parameters)
{
    //call the constructor passing the first element of $parameters
    return new KlarnaBilling( $parameters[0] );
} );

//pass the parameter to App::Make
App::make( 'App\BokaKanot\Interfaces\BillingInterface',  [ $merchantId ]  );

Laravel Blade模板尝试获取非对象的属性时如何返回null而不是ErrorException - php

我正在编写一些Laravel Blade模板,并且我的模型可能包含空对象。我非常想尝试获取对象属性,如果有错误,则返回null。因此,不必编写以下代码:@if ($model->child_object_that_may_be_null) {{ $model->child_object_that_may_be_null->interesti…

将所有具有特定路径名的URL重定向到某个视图-LARAVEL - php

好的,我正在使用laravel,网站和管理版块运行两个React项目。我希望两个应用程序都在单独的页面上呈现,因为它们的CSS会发生冲突。因此,在我的web.php中,我有这个Route::view('/{path?}', 'app');,但这会将我的所有路线重定向到我的app.blade.php视图。我只是想知道我是…

Laravel-无需登录即可认证用户 - php

在laravel 5.4中,可以在不登录用户的情况下对用户进行身份验证吗?从laravel doc中,我能找到的最接近的东西是:Auth::once($credentials) 但这仍然使该用户感到厌烦。我需要做的就是只是知道使用该电子邮件和密码的用户是否存在。 参考方案 您可以将Auth::attempt函数与第三个参数用作false进行登录 $email…

Laravel WHERE查询单列结果 - php

我有以下控制器,应该返回所有尚未验证的用户。public function getUserRequests() { $userRequests = User::where('status' ,"Not Verified"); foreach($userRequests as $user) { echo $user-&g…

Laravel 5错误报告抑制 - php

在Laravel 4中,抑制E_NOTICE消息很容易;我似乎无法做到这一点,因为如果我添加error_reporting(E_ALL ^ E_NOTICE) 它只是被覆盖的任何地方。这似乎发生在这里:(index.php)$response = $kernel->handle( $request = Illuminate\Http\Request::…