【问题标题】:Laravel POST request gives me a 404Laravel POST 请求给了我一个 404
【发布时间】:2019-04-04 07:13:34
【问题描述】:

我目前正在 Laravel 中编写一个 API,但遇到了一些障碍。目前我专注于我的 api 的身份验证部分,所以我有以下路线:

(通过php artisan route:list

+--------+--------+------------------------+------+--------------------------------------------------------+------------+
| Domain | Method | URI                    | Name | Action                                                 | Middleware |
+--------+--------+------------------------+------+--------------------------------------------------------+------------+
|        | POST   | v1/users/auth/login    |      | App\Http\Controllers\User\AuthController@login         | api        |
|        | POST   | v1/users/auth/register |      | App\Http\Controllers\User\AuthController@register      | api        |
+--------+--------+------------------------+------+--------------------------------------------------------+------------+

非常简单。现在,当我尝试通过 Postman 向v1/users/auth/login 发帖时,它可以工作了。它给了我预期的反应和一切。但是,当我尝试 register 路线时,Laravel 会抛出 404?

没有错误,什么都没有,只有 404。现在通过一些穴居人调试,我可以看到它通过了请求的 authorize() 方法,但随后又抛出了那个该死的错误。

这是我的要求:

class RegistrationRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return !Auth::check();
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'code' => 'required',
            'username' => 'required|unique:users',
            'password' => 'required|confirmed|min:6',
        ];
    }

   public function persist() 
   {
      $user = User::create([
            'username' => $this->username,
            'password' => password_hash($this->password, PASSWORD_DEFAULT),
            'reg_ip' => $this->ip(),
            'last_ip' => $this->ip()
        ]);
       return response()->json($user->api_token, 201);
   }

这怎么可能,因为我的路线已明确定义?

谢谢。

-- 编辑:

我的控制器:

class AuthController extends Controller
{
    public function register(RegistrationRequest $request)
    {
        return $request->persist();
    }

    public function login(LoginRequest $request)
    {
        return $request->persist();
    }
}

【问题讨论】:

  • 包含表单的刀片文件在哪里
  • 你能提供AuthController登录功能的代码和它应该返回的文件吗?
  • @ShaielndraGupta “我目前正在编写 API”“尝试通过 Postman 发布到 v1/users/auth/login”。没有刀片文件。
  • @BonishKoirala 更新了问题:)

标签: php laravel


【解决方案1】:

在这条路线上添加前缀

v1/users/auth/login

这样使用

api/v1/users/auth/login

【讨论】:

    【解决方案2】:

    要在 laravel 中调用 api 路由,添加 api/ 作为路由的前缀,否则它将在 web.php 中搜索路由

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2021-01-27
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多