2017-01-26 153 views
0

,照着所有的说明... https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0升级到5.3 laravel - 问题与路线::从5.1升级到5.3前缀

现在我越来越

BadMethodCallException in Macroable.php line 74: 
Method prefix does not exist. 
in Macroable.php line 74 
at Router->__call('prefix', array('api')) in Facade.php line 237 
at Facade::__callStatic('prefix', array('api')) in RouteServiceProvider.php line 58 
at RouteServiceProvider->mapApiRoutes() in RouteServiceProvider.php line 32 
at RouteServiceProvider->map() 
at call_user_func_array(array(object(RouteServiceProvider), 'map'), array()) in Container.php line 508 
at Container->call(array(object(RouteServiceProvider), 'map')) in RouteServiceProvider.php line 69 
at RouteServiceProvider->loadRoutes() in RouteServiceProvider.php line 30 
at RouteServiceProvider->boot() in RouteServiceProvider.php line 23 
at RouteServiceProvider->boot() 
at call_user_func_array(array(object(RouteServiceProvider), 'boot'), array()) in Container.php line 508 
at Container->call(array(object(RouteServiceProvider), 'boot')) in Application.php line 769 
at Application->bootProvider(object(RouteServiceProvider)) in Application.php line 752 
at Application->Illuminate\Foundation\{closure}(object(RouteServiceProvider), '16') 
at array_walk(array(object(EventServiceProvider), object(RoutingServiceProvider), object(AuthServiceProvider), object(CookieServiceProvider), object(DatabaseServiceProvider), object(EncryptionServiceProvider), object(FilesystemServiceProvider), object(FoundationServiceProvider), object(PaginationServiceProvider), object(SessionServiceProvider), object(ViewServiceProvider), object(NotificationServiceProvider), object(AppServiceProvider), object(AuthServiceProvider), object(ConfigServiceProvider), object(EventServiceProvider), object(RouteServiceProvider), object(DatabaseServiceProvider), object(BraintreeServiceProvider), object(BroadcastServiceProvider), object(FlashServiceProvider), object(ExcelServiceProvider), object(CashierServiceProvider), object(EntrustServiceProvider), object(AnalyticsServiceProvider), object(JWTAuthServiceProvider), object(ApidocsServiceProvider), object(ServiceProvider), object(GeoIPServiceProvider), object(PdfServiceProvider), object(LaravelPhoneServiceProvider)), object(Closure)) in Application.php line 753 
at Application->boot() in BootProviders.php line 17 
at BootProviders->bootstrap(object(Application)) in Application.php line 203 
at Application->bootstrapWith(array('Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\RegisterProviders', 'Illuminate\Foundation\Bootstrap\BootProviders')) in Kernel.php line 254 
at Kernel->bootstrap() in Kernel.php line 145 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 117 
at Kernel->handle(object(Request)) in index.php line 52 
  • 跑作曲家转储-autoload
  • ran作曲家更新(只是为了获得最新和最好的)
  • 我还能做什么?

RouteServiceProvider的代码是从laravel精确复制的。 不确定为什么它没有加载!该方法无法识别,但我可以在Router类中看到它。

{ “名称”: “laravel/laravel”, “描述”: “的Laravel框架。”, “关键字”:[ “框架”, “laravel”], “许可证”:“MIT “ ”类型“: ”项目“, ”需要“:{ ”laravel /框架“: ”5.3 “, ”laravelcollective/HTML。“: ”〜5.0“, ”laracasts /闪光“:” 〜1.3“, ”maatwebsite/excel“:”〜2.1“, ”guzzlehttp/guzzle“:”〜6.2“, ”doctrine/dbal“:”〜2.5“, ”laravel/cashier“:”〜7.0 “, ”联盟/ flysystem-aws -s3-v3“:”〜1.0“, ”zizaco/entrust“:”1.7.0“, ”barryvdh/laravel-ide-helper“:”^ 2.2“, ”blueimp/jquery-file-upload“ :“^ 9.14”, “ipunkt/laravel-analytics”:“^ 1.3”, “braintree/braintree_php”:“^ 3.21”, “tymon/jwt-auth”:“0.5。 “ ”F2M2/apidocs“: ”〜2.0“, ”barryvdh/laravel-CORS“: ”0.8 *“, ”pulkitjalan/geoip的。“: ”〜2.4“, ” AWS/AWS-sdk- php-laravel“:”^ 3.1“, ”vsmoraes/laravel-pdf“:”^ 1.0“, ”propaganistas/laravel-phone“:”^ 2.8“, ”activecampaign/api-php“:”〜2.0 “ }, ”需要-dev的“:{ ”的PHPUnit/PHPUnit的“: ”〜4.0“, ”phpspec/phpspec“: ”〜2.1“, ”ozankurt/repoist“: ”^ 1.0“, ” symfony/dom-crawler“:”〜3.1“, ”symfony/css-selector“:”〜3.1“ }, ”autoload“:{ “类映射”:[ “数据库” ], “PSR-4”:{ “APP \”: “应用程序/” } }, “自动加载-dev的”:{ “类映射”:[ “测试/ TestCase.php” ] }, “脚本”:{ “根后封装安装”:[ “PHP -r \” file_exists( 'ENV')||复制('。env.example','。ENV'); \ “” ], “后创建项目-CMD”: “PHP工匠键:产生” ], “安装后-CMD”: “照亮\基金会\ ComposerScripts ::安装后 “ ”PHP人员优化“ ], ”更新后-CMD“:[ ”照亮\基金会\ ComposerScripts :: postUpdate“, ”PHP人员优化“ ] }, ” 配置“:{ ”preferred-install“:”dist“ } }

RouteServiceProvider

<?php 
namespace App\Providers; 
use Illuminate\Support\Facades\Route; 
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 
class RouteServiceProvider extends ServiceProvider 
{ 
    /** 
    * This namespace is applied to your controller routes. 
    * 
    * In addition, it is set as the URL generator's root namespace. 
    * 
    * @var string 
    */ 
    protected $namespace = 'App\Http\Controllers'; 
    /** 
    * Define your route model bindings, pattern filters, etc. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     // 
     parent::boot(); 
    } 
    /** 
    * Define the routes for the application. 
    * 
    * @return void 
    */ 
    public function map() 
    { 
     $this->mapApiRoutes(); 
     $this->mapWebRoutes(); 
     // 
    } 
    /** 
    * Define the "web" routes for the application. 
    * 
    * These routes all receive session state, CSRF protection, etc. 
    * 
    * @return void 
    */ 
    protected function mapWebRoutes() 
    { 
     Route::middleware('web') 
      ->namespace($this->namespace) 
      ->group(base_path('routes/web.php')); 
    } 
    /** 
    * Define the "api" routes for the application. 
    * 
    * These routes are typically stateless. 
    * 
    * @return void 
    */ 
    protected function mapApiRoutes() 
    { 
     Route::prefix('api') 
      ->middleware('api') 
      ->namespace($this->namespace) 
      ->group(base_path('routes/api.php')); 
    } 
} 

另一个测试 我换前缀和中间件调用和得到这个错误...

交换ORDER

protected function mapApiRoutes() 
{ 
    Route::middleware('api')->prefix('api') 
     ->namespace($this->namespace) 
     ->group(base_path('routes/api.php')); 
} 

ERROR

FatalThrowableError in Router.php line 859: 
Type error: Too few arguments to function Illuminate\Routing\Router::middleware(), 1 passed in /var/www/vhosts/camp-native/API-v.2-master/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 237 and exactly 2 expected 
in Router.php line 859 
at Router->middleware('api') in Facade.php line 237 
at Facade::__callStatic('middleware', array('api')) in RouteServiceProvider.php line 58 
at RouteServiceProvider->mapApiRoutes() in RouteServiceProvider.php line 32 
at RouteServiceProvider->map() 
at call_user_func_array(array(object(RouteServiceProvider), 'map'), array()) in Container.php line 508 
at Container->call(array(object(RouteServiceProvider), 'map')) in RouteServiceProvider.php line 69 
at RouteServiceProvider->loadRoutes() in RouteServiceProvider.php line 30 
at RouteServiceProvider->boot() in RouteServiceProvider.php line 23 
at RouteServiceProvider->boot() 
at call_user_func_array(array(object(RouteServiceProvider), 'boot'), array()) in Container.php line 508 
at Container->call(array(object(RouteServiceProvider), 'boot')) in Application.php line 769 
at Application->bootProvider(object(RouteServiceProvider)) in Application.php line 752 
at Application->Illuminate\Foundation\{closure}(object(RouteServiceProvider), '16') 
at array_walk(array(object(EventServiceProvider), object(RoutingServiceProvider), object(AuthServiceProvider), object(CookieServiceProvider), object(DatabaseServiceProvider), object(EncryptionServiceProvider), object(FilesystemServiceProvider), object(FoundationServiceProvider), object(PaginationServiceProvider), object(SessionServiceProvider), object(ViewServiceProvider), object(NotificationServiceProvider), object(AppServiceProvider), object(AuthServiceProvider), object(ConfigServiceProvider), object(EventServiceProvider), object(RouteServiceProvider), object(DatabaseServiceProvider), object(BraintreeServiceProvider), object(BroadcastServiceProvider), object(FlashServiceProvider), object(ExcelServiceProvider), object(CashierServiceProvider), object(EntrustServiceProvider), object(AnalyticsServiceProvider), object(JWTAuthServiceProvider), object(ApidocsServiceProvider), object(ServiceProvider), object(GeoIPServiceProvider), object(PdfServiceProvider), object(LaravelPhoneServiceProvider)), object(Closure)) in Application.php line 753 
at Application->boot() in BootProviders.php line 17 
at BootProviders->bootstrap(object(Application)) in Application.php line 203 
at Application->bootstrapWith(array('Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\RegisterProviders', 'Illuminate\Foundation\Bootstrap\BootProviders')) in Kernel.php line 254 
at Kernel->bootstrap() in Kernel.php line 145 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 117 
at Kernel->handle(object(Request)) in index.php line 52 
+0

我现在也面临完全相同的问题,我从5.1升级到5.2,它工作得很好,只有很少的补丁,然后我不得不升级到5.3之后有一些问题,这似乎是第一次。祝你好运? – BlackBurn027

回答

2

该链接是从5.2升级到5.3,因此您可能还需要检查5.1到5.2。

看起来可能是缺少的API路由和中间件。您所查找的API和部分与裁判该更新链接:

'api' => [ 
    'throttle:60,1', 
    'bindings', 
], 

app/Providors/RouteServiceProvider您寻找somethign像内:

protected function mapApiRoutes() 
     { 
      Route::prefix('api') 
      ->middleware('api') 
      ->namespace($this->namespace) 
      ->group(base_path('routes/api.php')); 
    } 

希望这有助于,可能是一个线索?

+0

链接是所有的升级,只需要进一步向下滚动;) – Artistan

+0

我遵循所有的说明和api路由被定义为详细。任何其他想法? – Artistan

+2

收集应用程序\ Providers \ RouteServiceProvider ::类, 是在config/app.php providors列表中?您也可以在您的问题中添加整个RouteServiceProvider,以便我们可以检查全新安装,因为这是我有时会检查更新的 –