Ärger mit $ rekord> exportTo ('json') wird exportiert alle Datensatzfelder. In den meisten Fällen ist dies kein wünschenswertes Verhalten (z. B. wenn dieses Stück json an den Browser übergeben werden sollte). Eine Möglichkeit, den Umfang der Ausfuhr zu begrenzen, ist zu spezifizieren Felder in DQL wählen:
$user = Doctrine_Query::create()
->select('u.id, u.name')
->from('User u')
->addWhere('u.id = ?', $id)
->fetchOne();
$user_json = $user->exportTo('json');
$ user_json hat dann etwa so aus:
{
"id": 123,
"name": "John Smith",
"password": null,
"deleted": null
}
So ist es nicht aussetzen „Passwort“ Feldwert aber zeigt zugrunde liegende Datenbankstruktur offen legen. Auch hier ist vielleicht nicht das, was wir wollen. Was ich tue, ist Felder in DQL angeben wählen + holen als Array dann json kodieren:
$user = Doctrine_Query::create()
->select('u.id, u.name')
->from('User u')
->addWhere('u.id = ?', $id)
->fetchOne(array(), Doctrine::HYDRATE_ARRAY);
$user_json = json_encode($user);
In diesem Fall json wie etwas aussehen wird:
{
"id": 123,
"name": "John Smith"
}
Zweite Antwort ist sehr gut. [http: // Stapelüberlauf.com/Fragen/6706485/how-to-encode-Lehre-Einheiten-to-json-in-symfony-2-0-Ajax-Anwendung] [1] [1]: http: // Stackoverflow .com/questions/6706485/How-to-Encoding-Doktrin-Entitäten-zu-JSON-in-Symfony-2-0-Ajax-Anwendung – csadan