今天使用Lumen的時候,用到了Response類,很奇怪提示:Target [Illuminate\Contracts\Routing\ResponseFactory] is not instantiable. 大概就是說實例不了Response 類,那怎麼解決呢?咱們以一個全新的Lumen項目來講
<?php /* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | Here is where you can register all of the routes for an application. | It is a breeze. Simply tell Lumen the URIs it should respond to | and give it the Closure to call when that URI is requested. | */ use Illuminate\Support\Facades\Response; $router->get('/', function () use ($router) { return Response::json('123456',200); });
而後訪問這個路由報錯以下(也就是咱們要解決的錯誤):php
2.1 打開項目根目錄下的 bootstrap/app.phpweb
//找到這兩行把註釋去掉 $app->withFacades(); $app->register(App\Providers\AppServiceProvider::class);
2.2 找到 項目根目錄下的 app/Providers/AppServiceProvider.phpjson
<?php namespace App\Providers; use Illuminate\Routing\ResponseFactory; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { } }
在 register 註冊 ResponseFactory 修改以下:bootstrap
<?php namespace App\Providers; use Illuminate\Routing\ResponseFactory; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { $this->app->singleton('Illuminate\Contracts\Routing\ResponseFactory', function ($app) { return new ResponseFactory( $app['Illuminate\Contracts\View\Factory'], $app['Illuminate\Routing\Redirector']); }); } }
這時候還不行, 咱們還須要安裝一個 庫,切換到項目根目錄 執行composer命令:app
composer require "illuminate/routing"
庫安裝完後,咱們訪問試試:composer
很簡單吧,這樣就能夠啦~~ide
特別提示:ui
本人正在培養本身的寫做水平,會把平時遇到的問題和有趣的東西記錄下來,若是對你有幫助請動動小手點個贊支持支持,大神莫噴,謝謝!!this