Laravel POST запрос дает мне 404 - PullRequest
       0

Laravel POST запрос дает мне 404

0 голосов
/ 31 октября 2018

В настоящее время я пишу API в Laravel, и я наткнулся на небольшую загадку. На данный момент я сосредоточен на части аутентификации моего 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        |
+--------+--------+------------------------+------+--------------------------------------------------------+------------+

Очень просто. Теперь, когда я пытаюсь отправить в v1/users/auth/login через Почтальон, это работает. Это дает мне ожидаемые ответы и все. Однако, когда я пробую маршрут register, Ларавел подбрасывает 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();
    }
}

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Чтобы вызвать маршруты api в laravel, добавьте в маршрут префикс api / as, иначе он будет искать маршруты в web.php

0 голосов
/ 31 октября 2018

добавить префикс на этом маршруте

v1/users/auth/login

используйте вот так

api/v1/users/auth/login
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...