Не возвращать JSON-ответ в Laravel - PullRequest
0 голосов
/ 10 сентября 2018

Я создал логику для API, где я использовал функцию, чтобы проверить, является ли запрос POST. А если нет, он должен вернуть ошибку.

AuthController.php выглядит так:

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class AuthController extends Controller {
private static function allowOneMethod($request, $allowed_method, $success_function){
    $method = $request->method();
    if ($method != $allowed_method){
        return response()->json(['status' => 'error', 'message' => 'Method not Allowed.'], 405);
    } else{
        $success_function();
    }
}

public function register(Request $request)
{

    $this->allowOneMethod($request, 'POST', function() {
        return response()->json(['status' => 'success', 'message' => 'It is a POST request.'], 200);
    });

}
...

routes/api.php выглядит так:

Route::any('/register', 'AuthController@register');

Но все, что я вижу, это просто пустой ответ. В чем может быть причина?

1 Ответ

0 голосов
/ 10 сентября 2018

Вы не вернете свой allowOneMethod() метод обратно

public function register(Request $request)
{
// you need to return your method value 
    return $this->allowOneMethod($request, 'POST', function() {
        return response()->json(['status' => 'success', 'message' => 'It is a POST request.'], 200);
    });

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