У меня есть объект User, содержащий адрес. Я сохраню адрес как JSON в моей базе данных. После проверки формы я должен вручную сериализовать адрес перед сохранением данных. Есть ли способ избежать этого? Можно ли вызвать сериализованное событие, когда доктрина сохраняет данные?
class User{
/**
* @ORM\Column(name="username", type="string", length=30)
**/
private $username;
/**
* @ORM\Column(name="address", type="json")
**/
private $address;
}
class Address{
private $postalcode;
private $street;
}
// Внутри моего контроллера
class UserController extends Controller{
/**
* @Rest\View(StatusCode = Response::HTTP_CREATED)
*
* @Rest\Post(
* path = "/user",
* name = "user_create"
* )
*/
public function createAction(){
$user = new User();
$form = $this->createForm(UserType::class, $user);
$form->submit($request->request->all());
if ($form->isValid())
{
$em = $this->getDoctrine()->getManager();
$user->setAddress($this->get('jms_serializer')->serialize($user->getAddress(), 'json'));
$em->persist($user);
$em->flush();
return $this->view($user, Response::HTTP_CREATED);
}
return $form;
}
}