Silex соответствует GET, но не POST

Со мной происходит что-то крайне необычное. У меня есть простое приложение REST API, которое обрабатывает все с помощью 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, потому что я ожидаю, что 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();
        }

привет, у вас есть это где-нибудь, чтобы протестировать

Shyam Joshi 03.06.2018 07:36

Да, он размещен на виртуальной машине Amazon Linux поверх AWS: ec2-52-14-147-102.us-east-2.compute.amazonaws.com/portcontro‌ l /…

fedejinkis 03.06.2018 16:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
87
0

Другие вопросы по теме