2015-07-08 2 views
4

Я работаю над API RESTful Laravel 5, который, кажется, неправильно направляет запросы POST.Laravel 5 POST-маршруты для индексации вместо магазина

Это мой routes.php:

Route::group(array('prefix' => 'api/v1'), function() 
{ 
    Route::resource('messages', 'IncomingMessages'); 
}); 

И это мой контроллер:

class IncomingMessages extends Controller 
{ 
    public function index() { 
     return "This is index"; 
    } 

    public function store() { 
     return "This is store"; 
    } 

    public function update() { 
     return "This is update"; 
    } 
} 

И это то, что происходит:

  • Запрос GET mydomain.com/api/v1/messages/ -> Это индекс
  • Просьба PUT mydomain.com/api/v1/messages/1 -> Th это является изменение
  • Запрос POST mydomain.com/api/v1/messages/ ->Это индекс

Это то, что php artisan route:list возвращается:

  • GET | ГОЛОВА API/v1/сообщений: api.v1. messages.index: App \ Http \ Controllers \ IncomingMessages @ index
  • GET | HEAD: api/v1/messages/create: api.v1.messages.create: приложение \ Http \ Controllers \ IncomingMessages @ create
  • POST: api/v1/messages: api.v1.messages.store: App \ Http \ Controllers \ IncomingMessages @ store
  • GET | HEAD: api/v1/messages/{messages}: api.v1.messages. шоу: App \ Http \ Контроллеры \ IncomingMessages @ показать
  • GET | ГОЛОВА: API/v1/сообщений/{сообщения}/редактировать: api.v1.messages.edit: App \ Http \ Контроллеры \ IncomingMessages @ редактировать
  • PUT: api/v1/messages/{messages}: api.v1.messages.update; App \ Http \ Контроллеры \ IncomingMessages @ обновляют
  • PATCH: API/v1/сообщений/{сообщений}: App \ Http \ Контроллеры \ IncomingMessages @ обновить
  • УДАЛИТЬ: API/v1/сообщений/{сообщений}: апи. v1.messages.destroy: App \ Http \ Контроллеры \ IncomingMessages @ уничтожить

Итак, мой вопрос:

Что мне не хватает? Почему он маршрутизируется на index() вместо маршрутизации до store()?

ПРИМЕЧАНИЯ:

  • Я отключил "VerifyCsrfToken" в Kernel.php
  • Я пытаюсь запросы с помощью Chromium плагин "Почтальон".

ОБНОВЛЕНИЕ:

Проблема добавления косую / к URL-адресу.Таким образом, вместо того, чтобы использовать этот URL:

mydomain.com/api/v1/messages/ 

Я пытался с этим:

mydomain.com/api/v1/messages 

и работал

+0

Привет, брат, выполните эту команду ** php artisan routes ** и покажите мне результат. –

+0

Привет @ZakariaAcharki, я отредактировал мой вопрос, чтобы показать, что возвращает php artisan. – Arangor

+0

Корни выглядят прекрасно, вы уверены, что запрос POST. попробуйте выполнить эту строку в консоли и подтвердите ответ: '$ .post (« api/v1/messages », функция (данные) { console.log (данные); });' –

ответ

3

Проблема была вызвана завершающего / добавляется к URL. Таким образом, вместо того, чтобы использовать этот URL:

mydomain.com/api/v1/messages/

Я пытался с этим:

mydomain.com/api/v1/messages

, и она работала.

Я открыл его, взглянув на журнал сервера. Так я обнаружил, что запросы POST на URL messages/ были перенаправлены.

Смежные вопросы