Symfony FOSRestController Пустой ответ

Я поставил метод и хочу, чтобы после логики был ответ «Успешное обновление проектов», и я использую statusCodes, когда ошибка и описание номера, но у меня 204 Нет содержимого, когда мое действие выполнено. Но когда

return "update old project";

но это неправильно я хочу использовать код статуса с описанием, почему у меня нет ответа не понимаю

Response Body [Raw]

"update old project"

мое действие

    /**
* 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"* )
* @RestView()
*
* @param  Request $request
* @param  string $slug
*
* @return View
*/
public function putProjectAction(Request $request, $slug)
{
$manager = $this->getDoctrine()->getManager();
$token = $this->get('request')->request->get('token');
$user = $this->getDoctrine()->getRepository('ArtelProfileBundle:Users')->findOneBySecuritytoken($token);
$projectOld = $manager->getRepository('ArtelProfileBundle:Project')
->putProjectClient($slug, $user);
$data = $request->request->all();
$view = View::create();
if(empty($projectOld)){
$view->setData('not find user project');
}
if(empty($user)){
$view->setData('not find user');
}
if (!empty($user)) {
$data = $this->get('serializer')->serialize($data, 'json');

$projectOld = $manager->getRepository('ArtelProfileBundle:Project')
->findOneBySlug($slug);
$projectNew = $this->get('serializer')
->deserialize($data, 'Artel\ProfileBundle\Entity\Project', 'json');
if (!$projectOld) {
$projectNew->setUserId($user);
$projectNew->setCurrentStatus('not_approved');
$projectNew->setStrippedName();
$manager->persist($projectNew);
$manager->flush();
$view->setStatusCode(404);
} else {
$this->get('artel.project.update')->updateObject($projectOld, $projectNew);
$manager->flush();
$view->setStatusCode(200);
}
}else{
$view->setStatusCode(101);
}
return $view;
}

Я тестирую его с помощью sanbox, потому что почтальон не отправляет параметры в запросе, если я тестирую метод PUT, а POST отправляет параметры в действие.

0

Решение

это API?
Если это так, почему вы не используете объект Response?
Вы можете установить код ответа и, если хотите, использовать Сериализатор для предоставления формата, такого как xml или json.

в основы вы можете найти то, что я говорю

Например:

вернуть новый ответ ($ this-> container-> get (‘serializer’) -> serialize ($ access, ‘json’), 200, массив («Content-Type» => «application / json; charset = utf-8) «));

Это вернет ответ в формате json, код 200 и тип контента «application / json»

Надеюсь, поможет

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]