Php 如何使用构造函数在Laravel中创建和传递属性

Php 如何使用构造函数在Laravel中创建和传递属性,php,constructor,laravel-5.1,Php,Constructor,Laravel 5.1,使用Laravel:我希望在所有方法中都有特定的属性可供使用,而不必在每个方法中复制代码。所以我想也许将代码放入构造函数是正确的做法。它可能不是,因为它没有按预期工作。PHPStorm is已灰显构造函数中的$contractor变量,告诉我它没有在任何地方使用。然而,索引方法中的$contractor变量没有变灰。然而,我没有在Index()中使用$contractor变量 我做错了什么 以下是构造函数: class AccountController extends Controller {

使用Laravel:我希望在所有方法中都有特定的属性可供使用,而不必在每个方法中复制代码。所以我想也许将代码放入构造函数是正确的做法。它可能不是,因为它没有按预期工作。PHPStorm is已灰显构造函数中的$contractor变量,告诉我它没有在任何地方使用。然而,索引方法中的$contractor变量没有变灰。然而,我没有在Index()中使用$contractor变量

我做错了什么

以下是构造函数:

class AccountController extends Controller {

    protected $contractor;
    protected $email;
    protected $id;

    public function __construct(Contractor $contractor, Auth $id)
    {
        $this->id = Auth::id();
        $user = User::find($this->id);
        $contractor = Contractor::where('email', '=', $user->email)->get();
    }

    public function index($contractor) // THIS DOES NOT WORK
    {
        return View('contractor_portal/account_show', compact('contractor'));
    }
}

这就是你做这件事的方式:

public function __construct(Contractor $contractor, Auth $id){

    $this->id = Auth::id();
    $user = User::find($this->id);
    $this->contractor = Contractor::where('email', '=', $user->email)->get();

}

public function index()
{
    $contractor = $this->contractor;

    return View('contractor_portal/account_show', compact('contractor'));
}