Заявление об ограничении ответственности: Уже есть некоторые решения по другим вопросам, которые у меня совсем не работают. Вот почему я пишу этот вопрос. Решения проверял здесь ... Ссылка на StackOverflow
Я знаю, почему это происходит: Ожидается запрос POST, но я предлагаю запрос GET, который разрушает игру. Но я хочу, чтобы показать сообщение об ошибке, когда запрос GET сделан на /api/register
Что я сделал, чтобы это остановить:AuthController@register
public function register(Request $request)
{
$method = $request->method();
if ($method != 'POST'){
return response()->json(['status' => 'error', 'message' => 'Method not Allowed.'], 405);
}
try{
$user_registered = User::create([
'fname' => $request->fname,
'lname' => $request->lname,
'email' => $request->email,
'password' => Hash::make($request->password),
'verificationToken' => str_random(100),
'status' => 'STARTER',
'api_token' => str_random(100)
]);
$user = User::find($user_registered->id);
} catch(\Exception $e){
return response()->json(['status' => 'error', 'message' => 'User cannot be registered due to illegal or incomplete entry.'], 401);
}
return response()->json(['status' => 'success', 'user' => $user], 200);
}
Итак, вы видите, что я использую оператор if, чтобы проверить, какой метод используется. Но это все еще не работает.
Вот мой файл routes/api.php:
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::post('/register', 'AuthController@register');
Пожалуйста, помогите мне с этим. Заранее спасибо.






Вы пытались вместо этого добавить новый маршрут?
Route::get('/register', function () {
return response()->json(['status' => 'error', 'message' => 'Method not Allowed.'], 405);
});
Используйте метод маршрута Laravel any, который принимает все HTTP-запросы, вот ваш код выглядит как
Route::any('/register', 'AuthController@register');
Надеюсь, это поможет.
Ты Бог. :-)