Нечто необычное происходит со мной.У меня есть простое приложение 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();
}