找不到控制器方法奇怪的行为

时间:2015-12-28 23:58:06

标签: laravel routes laravel-5 request-validation

我的laravel应用程序中有一个AuthController,在该控制器中我有几种方法:

public function postLogin(LoginRequest $request)
{
  ...
}

public function getRegister()
{
  ...
}

public function postRegister(RegisterRequest $request)
{
  ...
}

由于某种原因,我的postRegister()功能无法正常工作,当我在postman中运行它时出于某种原因它始终执行getRegister(),当我取出getRegister()时它表示控制器方法没找到。

这是我的路线:

Route::group(['prefix' => '/api/v1/', 'namespace' => 'App\Http\Auth\Controllers'], function() {
    /**
     * Authentication
     */
    Route::controllers([
        'auth' => 'AuthController',
        'password' => 'PasswordController',
    ]);
});

编辑:我已将问题缩小到我的请求文件,路径是正确的但由于某种原因,当我尝试在postRegister(RegisterRequest $ request)中使用它时,postRegister函数不会得到执行,没有错误抛出,它现在工作,我现在不知道是什么导致了这个问题。

我想我还应该补充一点,我创建了我在我的应用程序中使用的自定义命名空间。

2 个答案:

答案 0 :(得分:1)

确保在Postman中你将HTTP方法设置为'POST',你可能正在使用'GET',它正在点击'get'路线而不是'post'路线。

您可以php artisan route:list查看您的实际路线及其接受的HTTP方法。

答案 1 :(得分:0)

经过几个小时的搜索和更改我的代码后,我找到了一个解决方案: laracasts.com/discuss/channels/laravel/laravel-5-custom-request-not-working

显然,当使用邮递员在laravel中测试您的API时,您需要将AcceptHeader设置为Application/json。我不知道这个。 :)