2014-12-02 2 views
1

Я реализовал Alto Router в своей инфраструктуре MVC и его маршрутизацию. Получить запросы с использованием URI отлично.Получение данных POST с использованием AltoRouter PHP

Это связано с тем, что мне нужно начать работу с формами и данными POST, поэтому я установил маршрут для обработки запроса POST, запрос работает, и я получаю маршрут отправки сообщений, например domain.com/contact/send/

К сожалению, я не получаю данные POST в массиве params в матче.

Я не уверен, что если я смущаюсь, должен ли маршрутизатор делать это или нет.

Если маршрутизатор не должен обрабатывать получение данных POST, не могли бы вы указать мне в правильном направлении, как я мог бы идеально обрабатывать данные POST?

Если маршрутизатор должен обрабатывать данные POST, домой приходит я не вижу его в массиве params соответствия?

Вот фрагмент запроса POST:

$router->map('POST','/contact/send/,'contact#send', 'contact_form_send'); 
$match = $router->match() 

Любая помощь будет высоко ценится, благодаря

ответ

0

Вот как я это делаю.

$router->map('POST', '/companies/create', function() { 
    if isset($_POST['company'])) { 
     createCompany($_POST['company']); 
    } 
}); 

надеюсь, что это помогает

1

Если вы посмотрите на источник AltoRouter, params is extracted from the request URL, поэтому он не будет содержать каких-либо данных POST. Этот параметр в основном используется AltoRouter для его функции обратного маршрутизации, но вы можете использовать его, а не напрямую обращаться к $_GET.

Если вам нужно получить доступ к данным POST, вам нужно будет получить его непосредственно из запроса, используя либо , либо $_REQUEST суперглобальный.

Обратите внимание, что AltoRouter will overwrite $_REQUEST when you call match, поэтому он может вести себя иначе, чем ожидалось, поскольку он не будет содержать куки.

1

получить данные POST через PHP: // ввод

// update a document 
$router->map('POST', '/docs', function() { 
    $rc = new DocumentController(); 
    $data = json_decode(file_get_contents('php://input')); 
    $data = (array)$data; 
    $rc->updateDocument($data); 
}); 
Смежные вопросы