2015-11-19 3 views
2

В Symfony в API у меня есть метод PUT, и когда в Postman я создаю URL-адрес PUT и добавляю поля в тело и отправляю ввод в действие, но имею пустой запрос и не понимаю почему? Я пытаюсь с параметрами в ApiDoc и без них и попробую использовать аннотацию * @Put ("/ projects/{slug}", name = "put", requirements = {"id" = "\ d +"}), но все еще пустой запрос. scrrenSymfony PUT Empty

/** 
* Update existing Projects from the submitted data or create a new Projects at a specific location. 
* @Put("/projects/{slug}", name="put", requirements={"id"="\d+"}) 
* @ApiDoc(
* resource = true, 
* description = "Create/Update single Projects", 
* parameters={ 
*  {"name"="level", "dataType"="string", "required"=true, "description"="project choice - Senior, Middle+, Middle, Middle/Junior, Junior"}, 
*  {"name"="main_skill", "dataType"="string", "required"=true, "description"="mainskill project"}, 
*  {"name"="name", "dataType"="string", "required"=true, "description"="additional information"}, 
*  {"name"="duration", "dataType"="string", "required"=true, "description"="1 year+, 3 months+, 2 weeks"}, 
*  {"name"="location", "dataType"="string", "required"=true, "description"="location project"}, 
*  {"name"="expected_budget", "dataType"="string", "required"=true, "description"="expected_budget project"}, 
*  {"name"="start_date", "dataType"="string", "required"=true, "description"="start date project"}, 
*  {"name"="description", "dataType"="string", "required"=false, "description"="description"}, 
*  {"name"="employment", "dataType"="string", "required"=true, "description"="employment"}, 
*  {"name"="project_skills", "dataType"="array", "required"=true, "description"="project skills project"}, 
*  {"name"="markets", "dataType"="array", "required"=true, "description"="project markets "}, 
*  {"name"="platforms", "dataType"="array", "required"=true, "description"="project platforms "}, 
*  {"name"="token", "dataType"="string", "required"=true, "description"="is equally md5('email'.secret_word)"}, 
*  {"name"="speciality", "dataType"="array", "required"=true, "description"="project speciality"}, 
*  {"name"="type", "dataType"="string", "required"=false, "description"="project type - fixed_cost or time_and_material"}, 
*  {"name"="rate", "dataType"="integer", "required"=true, "description"="project rate"} 
* 
* }, 
* statusCodes = { 
* 200 = "Projects successful update", 
* 404 = "Return when project with current slug not isset", 
* 101 = "Secret token is not valid" 
* }, 
* section="Project" 
*) 
* 
* 
* @param Request $request 
* @param string $slug 
* @return mixed 
*/ 
public function putProjectAction(Request $request, $slug) 
{ 
    $data = $request->request->all(); 

$ данных пустой и я смотрю $ запрос и не найти мои поля ( , когда я пытаюсь метод POST, я вижу свои поля запроса помощи, пожалуйста

+0

Но в этом методе API нет никакого параметра. Что ты не видишь? – COil

+0

Обновить вопрос. Я пытаюсь с параметрами в ApiDoc и без –

+0

Просто попробовал, и он работает 'var_dump (запрос $ request->); умереть(); Объект (Symfony \ Component \ HttpFoundation \ ParameterBag) # 764 (1) { [ "параметры": защита] => массив (3) { [ "_format"] => строка (4) "JSON" [ "предел"] => строка (1) "5" [ "уровень"] => строка (7) "gfdgdfg" } } ' – COil

ответ

0

Пробовал с почтальоном он работает ... PUT . запрос на вкладке полезной вхожу:

param=toto 

у меня есть следующий вывод:

object(Symfony\Component\HttpFoundation\ParameterBag)#11 (1) { ["parameters":protected]=> array(1) { ["param"]=> string(4) "toto" } } 

Возможно, это неправильное использование Postman.

+0

вопрос об обновлении –