2015-03-14 2 views
0

Je fais des tests avec les API RESTful de Laravel 5. J'ai créé le contrôleur UserController en utilisant la commande php artisan make:controller UserController, et mis à jour routes.php comme ceci:Les requêtes de méthode POST, PUT et DELETE échouent

Route::group(['prefix' => 'api'], function() 
{ 
    Route:resource('user', 'UserController'); 
    Route::group(['prefix' => 'user'], function() 
    { 
     Route::get('', ['uses' => '[email protected]']); 

     Route::get('{id}', ['uses' => '[email protected]']); 

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

     Route::put('{id}', ['uses' => '[email protected]']); 

     Route::delete('{id}', ['uses' => '[email protected]']); 

    }); 
}); 

Lors du test, la seule méthode de travail est GET, d'autres ne parviennent pas lancer cette exception:

TokenMismatchException in compiled.php line 2440: 

Je d apprécie si vous pouviez me donner un coup de main avec ceci, merci.

Répondre

0

POST, PUT et les méthodes DELETE nécessitent un jeton CSRF. Vous devez l'inclure dans votre page.

{!! Form::token() !!} 

De plus, si vous utilisez Form::open() et passez l'une des méthodes énumérées ci-dessus comme argument, le jeton CSRF sera automatiquement inclus.

+0

thnks pour votre soutien. Je teste dans UserController.php. que diriez-vous d'inclure {{Form :: token()}} dans mon contrôleur. – Hort

+1

@Hort, '{!! Form :: token() !!} 'devrait être ajouté à votre vue, car il va imprimer une entrée cachée avec un jeton csrf – manix

+0

merci @Shiny Phoenix: si je veux utiliser la méthode post, mettre et supprimer sans inclure {!! Form :: token() !!} dans la vue. signifie que je crée une fonction insérer, mettre à jour, supprimer api du contrôleur. de quelle façon peut-on faire? Merci. – Hort