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文件夹下的配置,会在后续覆盖相同配置项,也就是合并