php - Laravel 5 POST 路由到索引而不是存储

标签 php laravel-5 laravel-routing restful-architecture

我正在使用 Laravel 5 RESTful API,它似乎没有正确路由 POST 请求。

这是我的 routes.php:

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

这是我的 Controller :

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 --> 这是更新
  • 请求 POST mydomain.com/api/v1/messages/ --> 这是索引

这是 php artisan route:list 返回的内容:

  • 获取|HEAD:api/v1/messages:api.v1.messages.index:App\Http\Controllers\IncomingMessages@index
  • GET|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
  • GET|HEAD : api/v1/messages/{messages} : api.v1.messages.show : App\Http\Controllers\IncomingMessages@show
  • GET|HEAD:api/v1/messages/{messages}/edit:api.v1.messages.edit:App\Http\Controllers\IncomingMessages@edit
  • PUT : api/v1/messages/{messages} :api.v1.messages.update ;应用\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 中禁用了“VerifyCsrfToken”
  • 我正在尝试使用 Chromium 插件“Postman”发送请求。

更新:

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

mydomain.com/api/v1/messages/

我试过这个:

mydomain.com/api/v1/messages

成功了

最佳答案

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

mydomain.com/api/v1/messages/

我试过这个:

mydomain.com/api/v1/messages

它奏效了。

我是通过查看服务器日志发现的。这就是我发现对 URL messages/ 的 POST 请求被重定向的原因。

关于php - Laravel 5 POST 路由到索引而不是存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304958/

相关文章:

PHP - Laravel 检查全局首次登录

php - 在 Eloquent 模型范围内检索请求实例

laravel - Request::getQueryString() 不带一些参数

php - 如何在 Joomla 3.1 中将电子邮件地址设为 "uncloak"?

php - 如何为每个唯一行选择最早的实例[min(timestamp)]

php - Laravel - 软删除没有生效

laravel-5 - 在单个页面上处理多个表单

php - Laravel 路由没有到达 Controller

php - Laravel 5 收银员中间件路由错误

php - 如何正确使用 get_template_directory_uri() WordPress 函数加载我的主题子文件夹中的图像?