Php Laravel 5将路由发布到索引而不是存储

Php Laravel 5将路由发布到索引而不是存储,php,laravel-5,laravel-routing,restful-architecture,Php,Laravel 5,Laravel Routing,Restful Architecture,我正在开发一个Laravel5RESTfulAPI,它似乎没有正确地路由POST请求 这是my routes.php: Route::group(array('prefix' => 'api/v1'), function() { Route::resource('messages', 'IncomingMessages'); }); 这是我的控制器: class IncomingMessages extends Controller { public functio

我正在开发一个Laravel5RESTfulAPI,它似乎没有正确地路由POST请求

这是my 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";
    }
}
事情就是这样的:

  • 请求
    获取mydomain.com/api/v1/messages/
    -->这是索引

  • 请求
    PUT mydomain.com/api/v1/messages/1
    -->这是更新
  • 请求
    POST mydomain.com/api/v1/messages/
    -->这是索引
这是
php artisan route:list
返回的内容:

  • 获取| HEAD:api/v1/messages:api.v1.messages.index:App\Http\Controllers\IncomingMessages@index
  • 获取| HEAD:api/v1/messages/create:api.v1.messages.create:App\Http\Controllers\IncomingMessages@create
  • POST:api/v1/messages:api.v1.messages.store:App\Http\Controllers\IncomingMessages@store
  • 获取| HEAD:api/v1/messages/{messages}:api.v1.messages.show:App\Http\Controllers\IncomingMessages@show
  • 获取| HEAD:api/v1/messages/{messages}/edit:api.v1.messages.edit:App\Http\Controllers\IncomingMessages@edit
  • PUT:api/v1/messages/{messages}:api.v1.messages.update;App\Http\Controllers\IncomingMessages@update
  • 修补程序:api/v1/messages/{messages}:App\Http\Controllers\IncomingMessages@update
  • 删除:api/v1/messages/{messages}:api.v1.messages.destroy:App\Http\Controllers\IncomingMessages@destroy
所以,我的问题是:

我错过了什么?为什么它要路由到
index()
,而不是路由到
store()

注:

  • 我已在
    Kernel.php
  • 我正在尝试使用铬插件“邮递员”的要求
更新:

问题是在URL中添加了一个尾随的
/
。因此,不要使用此URL:

mydomain.com/api/v1/messages/
我试过这个:

mydomain.com/api/v1/messages

这个问题是由于在URL中添加了一个尾随的
/
而引起的。因此,不要使用此URL:

mydomain.com/api/v1/messages/
mydomain.com/api/v1/messages/

我试过这个:

mydomain.com/api/v1/messages
mydomain.com/api/v1/messages

它成功了


我通过查看服务器的日志发现了它。这就是我发现发送到URL
消息的POST请求被重定向的原因。

如果您仍然存在此问题,并且路由正在使用
FormRequest


检查其中是否有
authorize
函数,因为如果返回false它将重定向

Hi brother运行此命令php artisan routes并显示结果。Hi@ZakariaAcharki,我编辑了我的问题以显示php artisan返回的内容。@ZakariaAcharki你给了我线索。我检查了Apache日志,发现每个帖子都有301重定向。我终于意识到我在URL中添加了一个尾随“/”。移除它修复了它。@Inigo我通过查看web服务器的日志发现了问题。我在那里看到每个POST请求都被重定向。请添加您的解决方案作为答案并接受:)
PUT mydomain.com/api/v1/messages/
(不传递id)是重定向索引()或列表。有限制它的选项吗?@San,在这种情况下,您不应该使用Route::resource(),而应该使用Route::put(“/api/v1/messages”,YourController@yourMethod.