2017-09-15 2 views
1

Im utilisant Dingo pour construire une API et jusqu'à présent, je n'ai eu aucun problème avec les routes, jusqu'à ce que j'essaie d'ajouter show dans le contrôleur, je reçois juste un 404 .Laravel Dingo API Route 404 pour @show

Détails ici:

{ 
    "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}" 
      ] 
     } 
    } 
} 

Voici une partie de mon dossier d'itinéraire de 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]'); 
}); 

Et le plaisir du spectacle ction dans le contrôleur: 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(); 
    } 

J'ai essayé de faire un Die'n'Dump pour assurer l'identification est à venir à travers, mais il ne semble pas être obtenir loin. @index et @store ne posent aucun problème et si je change LeadController @ index en LeadController @ show, l'itinéraire fonctionne et, bien sûr, j'obtiens l'erreur concernant le second paramètre. Je ne sais vraiment pas pourquoi cela ne fonctionnera pas, alors je vous serais reconnaissant de nous aider.

Répondre

0

Wow, de regarder trop dur, et pas assez de sommeil, la raison pour laquelle cela n'a pas été parce que la variable a été définie comme {$ id} pas {id} comme il aurait dû été.

Lorsque vous utilisez ces variables, ne pas utiliser lesigne $!