Silex соответствует ПОЛУЧИТЬ, но без POST - PullRequest
0 голосов
/ 02 июня 2018

Нечто необычное происходит со мной.У меня есть простое приложение API REST, которое обрабатывает все с ControllerProviders.Итак, в controllers.php я определил

$app->mount('/login', new Portcontrol\Provider\Controller\LoginControllerProvider);
$app->mount('/board', new Portcontrol\Provider\Controller\BoardControllerProvider);
$app->mount('/group', new Portcontrol\Provider\Controller\GroupControllerProvider);

Далее, например, я создал LoginControllerProvider следующим образом:

public function connect(Application $app)
{
    $controllers = $app['controllers_factory'];

    $controllers->match('/', 'Portcontrol\Controller\Login\LoginController::indexAction');

    return $controllers;
}

Странно то, что когда я запрашиваю с GET,контроллер отвечает НО когда я запрашиваю POST , двигатель говорит мне, что не найден.Это тот же файл, и мне действительно нужен метод POST, потому что я ожидаю, что idToken Google будет проходить аутентификацию.Я пытаюсь изменить совпадение на сообщение, но то же самое, результат запроса POST - страница Silex по умолчанию не найдена.

Это фрагмент моего LoginController:

    class LoginController{

        public function indexAction(Application $app, Request $request){
            Constants::resetlog("/login");

            $data = json_decode($request->getContent(), true);
            $request->request->replace(is_array($data) ? $data : array());

            if ($request->request->get('idToken')){
                Constants::log("/login: G");

                /*
                $client = new Google_Client(['client_id' => Constants::client_id()]);
                $payload = $client->verifyIdToken($request->request->get("idToken"));            
                */

                //PAYLOAD TO TEST WITHOUT GOING TO GOOGLE        
                $payload = Constants::test_payload();

                if ($payload) {
                    if ($this->toDatabase($payload, $request->request->get('serverAuthCode')))
                        return $this->loginSuccessResponse($request->request->get('serverAuthCode'));
                }
            }
            return Constants::failResponse();
        }
...