2016-11-11 2 views
0

Ich habe eine Route in Laravel, die ich versuche einzurichten. Ich verwende Version 5.2.45.Laravel Route für api funktioniert nicht get error message

Hier ist meine route.php Datei:

Route::group(['prefix' => 'api/v1'], function() { 

    Route::resource('prayer', 'PrayerController', [ 
    'except' => ['edit', 'create'] 
    ]); 

    Route::resource('prayer/list', 'ListController', [ 
    'only' => ['store', 'destroy'] 
    ]); 

    Route::post('user', [ 
    'uses' => '[email protected]' 
    ]); 

    Route::post('user/signin', [ 
    'uses' => '[email protected]' 
    ]); 

}); 

Hier ist meine AuthController.php Datei:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

class AuthController extends Controller 
{ 
    public function store(Request $request) 
    { 
     return "Request Works!"; 
    } 

    public function signin(Request $request) 
    { 
     return "It Works"; 
    } 
} 

Also, wenn ich zu meinem Weg gehen: http://localhost:8000/api/v1/user ich diesen Fehler zu sehen:

Whoops, looks like something went wrong. 

1/1 MethodNotAllowedHttpException in RouteCollection.php line 218: 

in RouteCollection.php line 218 

at RouteCollection->methodNotAllowed(array('POST')) in RouteCollection.php line 205 

at RouteCollection->getRouteForMethods(object(Request), array('POST')) in RouteCollection.php line 158 

at RouteCollection->match(object(Request)) in Router.php line 821 

at Router->findRoute(object(Request)) in Router.php line 691 

at Router->dispatchToRoute(object(Request)) in Router.php line 675 

at Router->dispatch(object(Request)) in Kernel.php line 246 

at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 

at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 

at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 

at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 

at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), 
array(object(Request), object(Closure))) in Pipeline.php line 136 

at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 

at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 

at Pipeline->Illuminate\Routing\{closure}(object(Request)) 

at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 

at Pipeline->then(object(Closure)) in Kernel.php line 132 

at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 

at Kernel->handle(object(Request)) in index.php line 54 

at require_once('/Applications/MAMP/htdocs/rosary-api/api/public/index.php') in server.php line 21 

Nicht sicher, was hier vor sich geht, da alle anderen Routen funktionieren, wenn ich sie im Browser besuche. Aber im Postboten funktioniert keiner von ihnen. Ich beginne nur mit Laravel, also wird jede Hilfe wirklich geschätzt!

Antwort

0

Sie haben keine Route in Ihrer Routendatei, die Ihrer Anfrage entspricht. So konnten Sie zwei Dinge tun:

  1. hinzufügen Ressourcen Route für Benutzer
  2. eine GET-Route wie folgt hinzufügen:

Route::get('user', [ 'uses' => '[email protected]' ]);

Und denken Sie daran: eine Anfrage von Ihrem Browser immer GET .

+0

Danke! Ich habe es versucht, aber für Postanfragen mit Postboten funktioniert es nicht für meine Route ... –

+0

Sicher, für POST-Anfrage brauchst du eine POST-Route;) – Marten

+0

Zur Klarstellung - da scheint und Postbote aufgetreten zu sein. Ich habe auf die neueste Version aktualisiert und es hat funktioniert. Außerdem funktioniert Ihr GET-Routencode! –

Verwandte Themen