如何在Lumen / Laravel AppServiceProvider寄存器功能中包含php文件?

时间:2017-11-03 07:12:05

标签: laravel lumen

当我尝试在变形关系中自定义多态类型时,如建议的那样,

  

你可以在你的启动功能中注册morphMap   如果您愿意,可以使用AppServiceProvider或创建单独的服务提供者。

我在AppServiceProvider寄存器函数中添加了morpMap函数(我没有在Lumen 5.3中找到使用的启动函数)。

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        $propertyConfig = include ('../config/config_property.php');
        Relation::morphMap($propertyConfig['property_morph_map']);
    }
}

然后,当我尝试运行一些php artisan命令时,它抛出了这个错误,

  

[ErrorException]
  include(../ config / config_property.php):无法打开流:没有这样的   文件或目录

但morphMap函数确实有效,这意味着当我在Homestead上运行此代码时,地址是正确的。

这是我的第一个Lumen项目,我仍然不熟悉服务提供商。寄存器功能如何影响工匠命令,这有点奇怪......

1 个答案:

答案 0 :(得分:1)

您可以通过以下代码在bootstrap/app.php中加载配置文件。

$app->configure('config_property')

要使用AppServiceProvider中的配置文件,请使用configure()

这是代码。

Relation::morphMap(configure('config_property.property_morph_map'));