我正在为一个项目使用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/