如何将Json绑定到Symfony2中的实体

use*_*562 6 php json entity bind symfony

我正在开发一个带有iPad前端和基于Symfony2的服务器的销售系统.它们之间的通信是通过POST方法以jSon格式进行的.

我已经看到将表单绑定到实体的可能性但是我不知道如果我记下一个jSon对象是否有可能这样做.

例如,这就是我在前端所拥有的(为简单起见,在Javascript中):

var sale=new Sale();
sale.client=10;
sale.user=1;
sale.product=11;
sale.quantity=100;
var jSon={"client": sale.client,
                            "user":sale.user,
                            "product":sale.product,
                            "quantity":sale.quantity}     

$.post("http://examplepath.com/new_sale", jSon,
             function (data) {
                if (data) {
                    alert(data);
                }
                else {
                    alert("Not working :-(");
                }
            }
);   
Run Code Online (Sandbox Code Playgroud)

现在,当我回忆起jSon时,我做了类似这样的事情:

$sale=new Sale(); //This is my entity :)
$sale->setUser($request->request->get("user"));
$sale->setClient($request->request->get("client"));
$sale->setProduct($request->request->get("product"));
$sale->setDate($date);

$em = $this->getDoctrine()->getEntityManager();
$em->persist($sale);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将POST收到的jSon与我的Sale实体绑定,而不需要做那些讨厌的setter吗?

iam*_*dto 3

你正在寻找的东西叫做Serialization.

您可以使用 Symfony 2 提供的默认Serializer 组件,但更方便的方法是使用JMSSerializerBundle