2013-06-12 7 views
4

Я пытаюсь получить имена и значения параметров запроса динамически, но массив всегда пуст. Это прибудет маршрут:Получение параметров запроса на Slim

$app->get('/get/profile/:id_user', function ($id_user) use ($app) { 
    print_r($app->request()->params()); 
}); 

И это, как им называть его из браузера:

http://localhost/get/profile/9492 

Это должен возвращать массив с id_user => 9492 но он приходит пустым.

Любые идеи, почему?

ответ

4

Извещение: Пожалуйста прочитайте примечания нот перед тем, как испытать этот код. Заметка об обновлении - это мой первый комментарий в этом ответе.

не удалось получить, чтобы проверить это, но, пожалуйста, попробуйте следующее:

$app->get('/get/profile/:id_user', function ($id_user) use ($app) { 
    $req = $app->request(); 
    print_r($req->params()); 
}); 

Справочная документация: http://docs.slimframework.com/#Request-Method

Update: Хорошо после некоторых рытье понял следующее, метод params() требует параметр , Если вызывается без параметра, возникает уведомление. Проверка источника показала, что эта функция, вызываемая без параметра, возвращает значение null. См. Http/Request.php строка 199. Также по какой-то причине каррирование, похоже, не работает либо для извлечения параметров, поэтому вам необходимо использовать параметр функции $id_user, который имеет ожидаемое значение.

+0

Нет результатов ни :(... 'Array()' является единственным ответом – andufo

+1

Итак, после некоторого копания вычислялось следующее, метод 'params()' требует параметра. Если вызывается без параметра, возникает уведомление. Проверка источника показала, что эта функция называется без pa rameter возвращает null. См. 'Http/Request.php line 199'. Также по какой-то причине каррирование, похоже, не работает либо для извлечения параметров, поэтому вам нужно использовать параметр функции '$ id_user', который имеет ожидаемое значение. – vee

+0

Таким образом, нет возможности динамически захватывать все запрошенные параметры. Документация немного смутно написана в этом отношении, но спасибо за объяснение! Я буду голосовать за ваш ответ в качестве решения, но было бы неплохо, если бы вы добавили уведомление в сообщение для других людей. – andufo

2

Вы можете использовать следующие.

$app->get("/test.:format/:name",function() use ($app){ 
    $router = $app->router(); 
    print_r($router->getCurrentRoute()->getParams()); 
}); 
+0

Спасибо, это именно то, что я искал последние полчаса :) – wout

0

Также проблема конфигурации

попробуйте

try_files $uri $uri/ /index.php?$query_string; 
Смежные вопросы