2017-05-14 23 views
0

json 입력으로 ParamConverter를 사용하고 원하지 않는 필드를 제거 할 수 있습니까?SF 원치 않는 json 입력을 ParamConverter로 제거하십시오.

내 엔티티 폴더에는 필드 이름 (문자열)과 createdAt (날짜 시간)가 있습니다. 나는 새 Folder를 보낸 사람이 createdAt의 값을 선택하는 것을 원하지 않습니다.

JSON 입력 :

{ 
    "name": "F name", 
    "createdAt": "01/02/03" 
} 

는 이름으로 엔티티를 저장해야합니다.

필드 createAt (또는 원치 않는 입력)는 어떻게 무시합니까?

답변

0

나는 그것을했다!

JmsSerializer 그룹을 사용합니다.

/** 
* @Rest\Post("/folder") 
* @Rest\View(StatusCode = 201) 
* @ParamConverter(
*  "folder", 
*  converter="fos_rest.request_body", 
*  options={ 
*  "validator"={ "groups"="create" }, 
*  "deserializationContext"={"groups"={"folder_create"}} 
*  } 
*) 
* 
*/ 
0

요청을 사용하여 사용할 JSON 객체의 항목을 선택하고 선택할 수 있습니다.

use Symfony\Component\HttpFoundation\Request; 

public function createAction(Folder $folder, ConstraintViolationList $violations, Request $request) 
{ 
    $name = $request->request->get('name'); 
    #do whatever you want with $name now ... 

    if (count($violations)) { 
     return $this->view($violations, Response::HTTP_BAD_REQUEST); 
    } 

    $em = $this->getDoctrine()->getManager(); 
    $em->persist($folder); 
    $em->flush(); 

    return $folder; 
} 
+0

$ folder-> getName()을 사용할 수 있습니다. 그건 요점이 아니야;) 폴더를 만들기 전에 json에서 항목을 자동으로 제거하려고합니다. – Sancho