Laravel立面在包装内无法到达?

时间:2018-09-17 12:36:07

标签: laravel-5.5 laravel-facade

我正在尝试使用与mongoDB配合使用的外观,但无法在自定义包中使用它。

我的程序包可以单独正常工作,并且可以在程序包外部调用外观,而不会出现问题。

我正在用composer加载我的软件包,如下所示:

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/",
        "Insight\\": "packages/test"
    }
},

我遵循了有关制作外墙的一些教程。 Link to tutorial

我确实将外观重命名为mongoDatabase,它在我的控制器中(在我的程序包之外)运行良好。

  public function __construct(EmailRepository $emailRepository)
{
    $this->emailRepository = $emailRepository;
}

public function store()
{
    $this->emailRepository->store(['plain' => 'test']);
}

在我的存储库中,我创建了一个抽象类,该类实际上加载了外观。

/**
 * AbstractRepository constructor.
 *
 * @param \mongoDatabase $mongoDatabase
 */
public function __construct(\mongoDatabase $mongoDatabase)
{
    $db = Config('services.mongo.database');

    $this->collection = $mongoDatabase::get()->selectCollection($db, $this->table);
}

但是,从我的程序包中调用emailRepository时,会出现以下错误:

Call to undefined method App\mongoDatabase\Facade::get()

现在,我不确定在尝试将其命名为包裹时是否能够到达立面?我的程序包是否在外观之前加载,从而使其不了解外观的get功能? 还是我错过了我需要做的其他事情才能允许我的包裹装载外墙?

0 个答案:

没有答案