将原语绑定到Laravel IoC容器并在控制器方法中解析

时间:2016-09-02 13:30:22

标签: php laravel dependency-injection inversion-of-control ioc-container

我正在尝试解析controller方法中的原语。

这是我的提供者的注册方法:

public function register()
{
    $this->app->when('App\Http\Controllers\InvalidCustomerController')
        ->needs('$customers')
        ->give(function () {
            return InvalidCustomer::latest()
                ->paginate(20);
        });
}

这是我试图解决的控制器方法$customers

public function index($customers)
{
    return view(
        'customer.invalid.index',
        compact('customers')
    );
}

$customers未填写。

如果我在构造函数上解析它,那么一切都会有效。

我做错了什么?

ps:我正在使用Laravel 5.2

1 个答案:

答案 0 :(得分:0)

不确定是否找到了解决方案但是在控制器中使用原语,将其传递给控制器​​类的__constructor,如下所示:

private $customers;
public function __construct($customers) {
    parent::__construct();
    $this->customers = $customers;
}

这个$ customers变量随后可以在类的其他地方使用。