2012-04-12 12 views
3

Ich erstelle eine Seite, wo ich mehr "Nachrichten" auf der Startseite laden kann. Es gibt jetzt 4 "Nachrichten", und wenn ich den Knopf Mehr lade, sollte es 4 neue Nachrichten laden.Symfony 2 + ajax Twitter-like laden mehr Inhalt

Ich weiß, wie man es mit einfachem php und Ajax macht. Aber ich habe keine Ahnung, wie es zu tun mit Symfony 2.

der Benutzung dieser Website, Codebeispiel als Quelle, http://www.9lessons.info/2009/12/twitter-style-load-more-results-with.html

Jede Hilfe geschätzt wird.

Antwort

1

Erstellen Sie eine separate Strecke für mehr Nachrichten zB erhalten news/get/[index] dann Controller die Nachrichten Objekte von db und Ausgabe als json Format zB holen,

public function yourControllerAction(){ 
    $news = //objects fetched from db 

    //set json header 
    $response = new Response(); 
    $response->headers->set('Content-Type', 'application/json'); 
    $response->setContent(json_encode($news); 
    return $response; 
} 

Und dann auf Ihrer Seite Sie es bei der Verwendung von rohen Javascript bevölkern können oder Javascript Templating-Engines wie mustache. Sie können auch JMSSerializerBundle zur Feineinstellung der Json-Ausgabe überprüfen.

0

Ihre einfachste Ansatz wäre, einen Embedded-Controller zu verwenden: http://symfony.com/doc/current/book/templating.html#embedding-controllers

Geben Sie ihm einen Wert, der standardmäßig auf 0 oder etwas ähnliches (ich würde die Nachrichten-ID vorschlagen). Dann lädt der Embedded-Controller die neuesten 4 Nachrichten, wenn die Nachrichten-ID 0 ist, oder lädt die nächsten 4 Nachrichten, die nach der von Ihnen gelieferten ID kommen, was die ID der zuletzt angezeigten Nachrichten wäre.

Keine Code-Duplizierung.