bug Unable to boot ApiServiceProvider, configure an API domain or prefix.

laravel5.5装了个dingo/api,然后感觉整个人都不好,看着挺吓人的报错

RuntimeException
Unable to boot ApiServiceProvider, configure an API domain or prefix.

详情报错如下

/home/vagrant/code/larbbs/vendor/dingo/api/src/Provider/DingoServiceProvider.php

        if (class_exists('Illuminate\Foundation\Application', false)) {
            $this->commands([
                \Dingo\Api\Console\Command\Cache::class,
                \Dingo\Api\Console\Command\Routes::class,
            ]);
        }
    }

    /**
     * Register the configuration.
     *
     * @return void
     */
    protected function registerConfig()
    {
        $this->mergeConfigFrom(realpath(__DIR__.'/../../config/api.php'), 'api');

        if (! $this->app->runningInConsole() && empty($this->config('prefix')) && empty($this->config('domain'))) {
            throw new RuntimeException('Unable to boot ApiServiceProvider, configure an API domain or prefix.');
        }
    }

    /**
     * Register the class aliases.
     *
     * @return void
     */
    protected function registerClassAliases()
    {
        $aliases = [
            \Dingo\Api\Http\Request::class => \Dingo\Api\Contract\Http\Request::class,
            'api.dispatcher' => \Dingo\Api\Dispatcher::class,
            'api.http.validator' => \Dingo\Api\Http\RequestValidator::class,
            'api.http.response' => \Dingo\Api\Http\Response\Factory::class,
            'api.router' => \Dingo\Api\Routing\Router::class,
            'api.router.adapter' => \Dingo\Api\Contract\Routing\Adapter::class,
            'api.auth' => \Dingo\Api\Auth\Auth::class,
            'api.limiting' => \Dingo\Api\Http\RateLimit\Handler::class,
            'api.transformer' => \Dingo\Api\Transformer\Factory::class,
Arguments
"Unable to boot ApiServiceProvider, configure an API domain or prefix."

分析:
domain或prefix配置出错,后续详情(斜体)代码也讲了,这两个玩意不能同时为空,否则抛出这个东东。
于明了,肯定是.env基础配置文件内没有这两个配置项的值,或者是有但值皆为空。改了就是。
.env.php增加如下内容

    API_PREFIX=null
    API_DOMAIN=larbbs.api

补充:
1. laravel框架会首先加载.env内配置文件内容
2. config文件夹下的配置,会在后续覆盖相同配置项,也就是合并

猜你喜欢

转载自blog.csdn.net/u011584949/article/details/80943037