2017-09-15 162 views
1

Im使用Dingo构建了一个API,直到这一点我已经没有路由问题,直到试图添加show到控制器中,我只是得到一个404 。Laravel Dingo API路由404 for @show

详情点击这里:

{ 
    "error": { 
     "message": "404 Not Found", 
     "status_code": 404, 
     "debug": { 
      "line": 179, 
      "file": "/var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php", 
      "class": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException", 
      "trace": [ 
       "#0 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(546): Illuminate\\Routing\\RouteCollection->match(Object(Dingo\\Api\\Http\\Request))", 
       "#1 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(525): Illuminate\\Routing\\Router->findRoute(Object(Dingo\\Api\\Http\\Request))", 
       "#2 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(511): Illuminate\\Routing\\Router->dispatchToRoute(Object(Dingo\\Api\\Http\\Request))", 
       "#3 /var/www/html/myapi/api/vendor/dingo/api/src/Routing/Adapter/Laravel.php(81): Illuminate\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))", 
       "#4 /var/www/html/myapi/api/vendor/dingo/api/src/Routing/Router.php(513): Dingo\\Api\\Routing\\Adapter\\Laravel->dispatch(Object(Dingo\\Api\\Http\\Request), 'v1')", 
       "#5 /var/www/html/myapi/api/vendor/dingo/api/src/Http/Middleware/Request.php(126): Dingo\\Api\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))", 
       "#6 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(114): Dingo\\Api\\Http\\Middleware\\Request->Dingo\\Api\\Http\\Middleware\\{closure}(Object(Dingo\\Api\\Http\\Request))", 
       "#7 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))", 
       "#8 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))", 
       "#9 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))", 
       "#10 /var/www/html/myapi/api/vendor/dingo/api/src/Http/Middleware/Request.php(127): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))", 
       "#11 /var/www/html/myapi/api/vendor/dingo/api/src/Http/Middleware/Request.php(103): Dingo\\Api\\Http\\Middleware\\Request->sendRequestThroughRouter(Object(Dingo\\Api\\Http\\Request))", 
       "#12 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Dingo\\Api\\Http\\Middleware\\Request->handle(Object(Illuminate\\Http\\Request), Object(Closure))", 
       "#13 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))", 
       "#14 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))", 
       "#15 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))", 
       "#16 /var/www/html/myapi/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))", 
       "#17 /var/www/html/myapi/api/public/index.php(54): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))", 
       "#18 {main}" 
      ] 
     } 
    } 
} 

这里是我的路由文件 api.php

$api->group(['middleware' => 'jwt.auth'], function(Router $api) { 
    $api->get('protected', function() { 
     return response()->json([ 
      'message' => 'Access to protected resources granted! You are seeing this text as you provided the token correctly.' 
     ]); 
    }); 

    $api->get('refresh', [ 
     'middleware' => 'jwt.refresh', 
     function() { 
      return response()->json([ 
       'message' => 'By accessing this endpoint, you can refresh your access token at each request. Check out this response headers!' 
      ]); 
     } 
    ]); 

    $api->get('leads', 'App\\Api\\V1\\Controllers\\[email protected]'); 
    $api->get('leads/{$id}', 'App\\Api\\V1\\Controllers\\[email protected]'); 
    $api->post('leads/store', 'App\\Api\\V1\\Controllers\\[email protected]'); 
    $api->put('leads/update/{$id}', 'App\\Api\\V1\\Controllers\\[email protected]'); 
    $api->post('leads/update/{$id}', 'App\\Api\\V1\\Controllers\\[email protected]'); 
}); 

的部分和表演的乐趣ction控制器: LeadController.php

public function show(Lead $leads, $id) 
    { 
     dd($id); 

     $lead = Lead::with('user', 'source', 'industry', 'status')->find($id); 

     //if(!$lead) 
     // return $this->response->error('invalid_data', 400); 

     //return fractal($lead, new LeadTransformer())->respond(); 
    } 

我试图做一个Die'n'Dump确保ID将通过即将到来,但它似乎没有那么远是越来越。 @index和@store都不会出现问题,如果我将LeadController @ index更改为LeadController @ show,则该路由起作用,我当然会得到有关第二个参数的错误。

真的不知道为什么这不起作用,所以在这里的帮助将非常感激。

回答

0

哇,从看太辛苦了,没有足够的睡眠,它不工作的原因是因为该变量被设置为{$ ID}没有{ID},因为它应该有是。

当使用这些变量,使用$标志!