chciałem zobaczyć jak Symfony2 poradzi sobie jako API i w tym celu chciałem wykorzystać ActionScript3.0 + Symfony2 (PHP) więc mam sobie jakąś aplikację, która wysyła z flasha json ( { id:1 } )
więc flash oczekuje wszystkich kolumn, które należą do ID = 1. Jako z tym nie mam problemu, bo normalnie mogę zrobić to tak:
$json = json_decode($_POST['data']); //odebranie json z flash { 'user' => $data, ); } //uzupełnienie tablicy $object danymi z bazy
ale jak to samo zrobić w Symfony2 ?
<?php namespace SimonMedia\ApiBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; class DefaultController extends Controller { /** * @Route("/") * @Template() */ public function indexAction() { } /** * @Route("/user/get/all") */ public function getAll() { $em = $this->getDoctrine()->getEntityManager(); $entities = $em->getRepository('SimonMediaApiBundle:Userzy')->findAll(); } }
var_dump zwraca
0 => object(SimonMedia\ApiBundle\Entity\Userzy)[211] private 'id' => int 1 private 'name' => string 'Janusz' (length=6) private 'email' => string 'Janko@wp.pl' (length=11) private 'phone' => string '668559634' (length=9) 1 => object(SimonMedia\ApiBundle\Entity\Userzy)[206] private 'id' => int 2 private 'name' => string 'Marek' (length=5) private 'email' => string 'Maro@wp.pl' (length=10) private 'phone' => string '665583999' (length=9) 2 => object(SimonMedia\ApiBundle\Entity\Userzy)[207] private 'id' => int 3 private 'name' => string 'Mariusz' (length=7) private 'email' => string 'Mario@wp.pl' (length=11) private 'phone' => string '994888777' (length=9)
Ale nijak nie potrafię się po tym ruszyć...
EDIT::
Doszedłem do tego, że po zmianie w klasie Userzy.php (entity) z private na public mam dostęp do np
print $entities[0]->name;
w przeciwnym razie otrzymuję error
Cannot access private property SimonMedia\ApiBundle\Entity\Userzy::$name in F:\WORK\labs\Symfony\ApiID\src\SimonMedia\ApiBundle\Controller\DefaultController.php on line 28
Ale chyba taka zmiana nie jest dobra i nie na tym to ma polegać ?