Nasıl Doktrini varlıklar Symfony 2.0 AJAX uygulamasında JSON kodlamak için?
Oyun Uygulama Geliştirme ve Symfony 2.0 kullanıyorum. Arka uç için bir çok AJAX istekleri var. Ve daha fazla tepkiler varlık JSON dönüştürme. Örneğin:
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');
}
}
Ve benim denetleyicileri aynı şeyi yaparlar: bir varlık almak ve bazı alanları JSON kodlamak. Normalizers kullanın ve tüm entitities kodlama biliyorum. Ama eğer bir varlık başka bir varlığa sağlanıncaya bağlantıları varsa? Varlıkları ya da grafik çok büyük? Herhangi bir öneriniz var mı?
Varlıklar için bazı kodlama şeması düşünüyorum... veya NormalizableInterface
bisiklet.., . önlemek için kullanma
CEVAP
Başka bir seçenek JMSSerializerBundle kullanmaktır. Kumandanız sen yap o zaman
$serializer = $this->container->get('serializer');
$reports = $serializer->serialize($doctrineobject, 'json');
return new Response($reports); // should be $reports as $doctrineobject is not serialized
Seri hale getirme nasıl yapılır varlık sınıf ek açıklamaları kullanarak yapılandırabilirsiniz. Yukarıdaki bağlantı ile ilgili belgelere bakın. Örneğin, burada bağlı kuruluşlar hariç ki:
/**
* Iddp\RorBundle\Entity\Report
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Iddp\RorBundle\Entity\ReportRepository")
* @ExclusionPolicy("None")
*/
....
/**
* @ORM\ManyToOne(targetEntity="Client", inversedBy="reports")
* @ORM\JoinColumn(name="client_id", referencedColumnName="id")
* @Exclude
*/
protected $client;
JSON göndermek için nasıl ajax, DV yer...
Nasıl jQuery Ajax çağrısından sonra bi...
Nasıl Krom XML yerine JSON dönmek için...
Nasıl terminalden Curl ile JSON veri g...
Nasıl, asenkron yerine senkron AJAX is...