我正在为一个项目使用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并拥有所有必需的字段。
作为回应,我得到了允许:post。
注:
还有其他的邮递路线工作得很好。
还有其他的
用户控制器路由工作正常
我试过删除所有其他路线,但仅此而已,它仍然不起作用。
如有任何帮助,我们将不胜感激。谢谢。
更新:
好吧,这对我来说真是个愚蠢的错误。我正在点击“domain/api/users/”。删除尾随的“/”有效。
但问题是,本地“/”可以工作,而不在服务器上。
所以继续问这个问题也许可以解释一下。

最佳答案

很好的问题,我自己也碰到过。你的更新应该在一个答案,所以如果你这样做,我可以删除我的。对我来说,问题是我的action中有一个尾随斜线,例如/some/action/而不是/some/action路径期望的后者形式。
考虑到本地环境中的行为,我假设laravel会将这个可选的尾随斜杠作为一个特性来处理,但事实并非如此。

关于php - Laravel路由在本地运行完美,但在远程运行却不行。 (丁戈·阿皮),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33891359/

10-12 12:17
查看更多