Laravel路线在当地完美运行,但不是在偏远地区。 (Dingo Api)

时间:2015-11-24 10:37:58

标签: php laravel-5.1 laravel-routing dingo-api

我正在使用dingo / api进行项目,并且我的所有路线都不是1.

routes.php文件

    $api = app('api.router');
    $api->version('v1',['prefix' => 'api'], function ($api) {

        $api->post('users', "App\Http\Controllers\Auth\UsersController@store");
...
        });

存储方法:

/**
     *
     * @param  \App\Http\Requests\Auth\StoreUserRequest  $request
     * @return \Illuminate\Http\Response
     */
    public function store(StoreUserRequest $request)
    {
        if( ! $this->isAdminRequest() )
        {
            return $this->dispatch(new RegisterUserCommand($request));
        }
    }

此路线抛出405 Method Not Allowed Exception

php artisan api:routes表示它已在本地和服务器上注册。 我正在使用POSTMAN测试我的api并拥有所有必填字段。 作为回应,我确实允许:发布

注意:

  • 还有其他完美的帖子路线。
  • 还有其他 完美运行的UsersController路由
  • 我已经尝试删除所有其他路由,只是这样,它仍然无效。

感谢任何帮助。感谢。

更新:

好吧,这对我来说是一个非常愚蠢的错误。我正在点击&#39; domain / api / users /&#39; 。删除尾随的&#39; /&#39; 有效。 但问题是,本地&#39; <&#39; 有效,而不是服务器上。 因此,保留这个问题可能需要一些解释。

1 个答案:

答案 0 :(得分:1)

非常好的问题,自从遇到这个问题。您的更新应该在答案中,所以如果您这样做,我可能会删除我的。对我来说问题是我的action中有一个斜杠。 <{1}}而不是/some/action/,其中路线是后者所期望的。

我曾认为Laravel会将这个可选的尾部斜杠作为一个特征来考虑当地环境中的行为,但事实并非如此。