【发布时间】:2011-10-06 02:18:01
【问题描述】:
我正在开发游戏应用程序并使用 Symfony 2.0。我对后端有很多 AJAX 请求。更多的响应是将实体转换为 JSON。例如:
class DefaultController extends Controller
{
public function launchAction()
{
$user = $this->getDoctrine()
->getRepository('UserBundle:User')
->find($id);
// encode user to json format
$userDataAsJson = $this->encodeUserDataToJson($user);
return array(
'userDataAsJson' => $userDataAsJson
);
}
private function encodeUserDataToJson(User $user)
{
$userData = array(
'id' => $user->getId(),
'profile' => array(
'nickname' => $user->getProfile()->getNickname()
)
);
$jsonEncoder = new JsonEncoder();
return $jsonEncoder->encode($userData, $format = 'json');
}
}
我所有的控制器都做同样的事情:获取一个实体并将它的一些字段编码为 JSON。我知道我可以使用规范化器并对所有实体进行编码。但是如果一个实体循环链接到另一个实体呢?还是实体图很大?你有什么建议吗?
我考虑了一些实体的编码模式......或使用NormalizableInterface 来避免循环......,
【问题讨论】:
标签: ajax doctrine doctrine-orm symfony