POST呼叫在Laravel中返回404

时间:2018-09-09 20:03:18

标签: php laravel-5 laravel-5.4

我正在创建注册Api,第一个呼叫为 GET ,第二个呼叫为 POST 。 当我进行GET [POSTMAN]调用时,我会从控制器获得正确的响应,但是当我进行POST时,它将返回404。

web.php

// sign up api

Route::get('signup','Api\RegistrationController@createUser');
Route::post('/signup','Api\RegistrationController@storeUser');

RegistrationController.php

public function createUser(){
    return "Get : Sign up";
}

public function storeUser() {
    // validate the form
    $this->validate(request(),[
        'firstname' => 'required',
        'lastname' => 'required',
        'email' => 'required',
        'password' => 'required'
    ]);

    // create and save the user
    $user = Register::create(request(['firstname', 'lastename', 'email', 'password']));

    return "Registration complete";
}

我正在使用laravel 5.4。如果路由网址保持相同(即注册),则GET方法将执行POST调用;如果路由网址不同,则返回404。

Screenshot : its a POST call but GET route executed

2 个答案:

答案 0 :(得分:1)

尝试一下,让我知道:

use Illuminate\Http\Request;

public function storeUser(Request $request) {
// validate the form

$this->validate($request,[
  'firstname' => 'required',
  'lastname' => 'required',
  'email' => 'required',
  'password' => 'required'
]);

 // create and save the user

  $user = Register::create($request->all());

  return "Registration complete";
}

注意::开发api时,总是在api.php文件中定义Api路由。

答案 1 :(得分:0)

对于api请求,您不应使用扩展FormRequest的自定义Http请求,而应使用 use Illuminate\Http\Request;