找不到控制器方法奇怪的行为
Controller Method Not Found Strange Behaviour
我的 laravel 应用程序中有一个 AuthController,在该控制器中我有几种方法:
public function postLogin(LoginRequest $request)
{
...
}
public function getRegister()
{
...
}
public function postRegister(RegisterRequest $request)
{
...
}
出于某种原因,现在我的 postRegister()
函数不起作用,当我 运行 它出于某种原因在邮递员中时它总是执行 getRegister()
相反,当我取出 getRegister()
它说找不到控制器方法。
这是我的路线:
Route::group(['prefix' => '/api/v1/', 'namespace' => 'App\Http\Auth\Controllers'], function() {
/**
* Authentication
*/
Route::controllers([
'auth' => 'AuthController',
'password' => 'PasswordController',
]);
});
编辑: 我已将问题缩小到我的请求文件,路径是正确的,但出于某种原因,当我尝试在 postRegister(RegisterRequest $request) 中使用它时, postRegister 函数没有被执行,没有错误被抛出,它以前有效我现在不知道是什么导致了这个问题。
我想我还应该补充一点,我创建了我在我的应用程序中使用的自定义名称空间。
确保在 Postman 中您将 HTTP 方法设置为 'POST',您可能正在使用 'GET',它点击 'get' 路由而不是 'post' 路由。
您可以执行 php artisan route:list
查看您的实际路由和它们接受的 HTTP 方法。
经过数小时的搜索和更改我的代码后,我在这里找到了解决方案:
laracasts.com/discuss/channels/laravel/laravel-5-custom-request-not-working
显然,在 laravel 中使用邮递员测试您的 API 时,您需要将 AcceptHeader
设置为 Application/json
。我不知道这个。 :)
我的 laravel 应用程序中有一个 AuthController,在该控制器中我有几种方法:
public function postLogin(LoginRequest $request)
{
...
}
public function getRegister()
{
...
}
public function postRegister(RegisterRequest $request)
{
...
}
出于某种原因,现在我的 postRegister()
函数不起作用,当我 运行 它出于某种原因在邮递员中时它总是执行 getRegister()
相反,当我取出 getRegister()
它说找不到控制器方法。
这是我的路线:
Route::group(['prefix' => '/api/v1/', 'namespace' => 'App\Http\Auth\Controllers'], function() {
/**
* Authentication
*/
Route::controllers([
'auth' => 'AuthController',
'password' => 'PasswordController',
]);
});
编辑: 我已将问题缩小到我的请求文件,路径是正确的,但出于某种原因,当我尝试在 postRegister(RegisterRequest $request) 中使用它时, postRegister 函数没有被执行,没有错误被抛出,它以前有效我现在不知道是什么导致了这个问题。
我想我还应该补充一点,我创建了我在我的应用程序中使用的自定义名称空间。
确保在 Postman 中您将 HTTP 方法设置为 'POST',您可能正在使用 'GET',它点击 'get' 路由而不是 'post' 路由。
您可以执行 php artisan route:list
查看您的实际路由和它们接受的 HTTP 方法。
经过数小时的搜索和更改我的代码后,我在这里找到了解决方案: laracasts.com/discuss/channels/laravel/laravel-5-custom-request-not-working
显然,在 laravel 中使用邮递员测试您的 API 时,您需要将 AcceptHeader
设置为 Application/json
。我不知道这个。 :)