2017-01-17 1 views
1

Im FosMessageBundleFosMessageBundle arbeiten nicht

ich Schritt für Schritt Dokumentation verwenden, und ich habe meine Tabelle mit nur id endet, thread_id und SENDER_ID. Es fehlt der Rest der Felder.

Und wenn ich Thread oder Nachrichtenanzahl i Controller erhalten möchte ich erhalten Fehler:

line 0, col 165 near 'isRead = :is': Error: Class AppBundle\Entity\MessageMetadata has no field or association named isRead 

isRead Spalte isset in verlängern MessageMetaData Klasse ... config.yml

fos_message: 
db_driver: orm 
thread_class: AppBundle\Entity\Thread 
message_class: AppBundle\Entity\Message 

Controller: Und Entität, die in der Dokumentation.

class MessageController extends Controller 
{ 
    /** 
    * @Route("/message/", name="message") 
    */ 
    public function viewAction() 
    { 
    $provider = $this->get('fos_message.provider'); 

     $threads = $provider->getNbUnreadMessages(); 
     dump($threads);die; 

    return $this->render('message/message.html.twig', ['message' => $threads]); 

    } 
+1

Kennt jemand eine gute Ressource für FOSMessageBundle? Ich habe es sehr schwer, es zu konfigurieren. –

+0

Ich stieß kürzlich auf das gleiche Problem und versuche zu bekommen, warum die Doktrin die vererbten Felder nicht erzeugt. Ich konnte neben der Dokumentation zu GitHub keine nützlichen Ressourcen finden ... – larscm

Antwort

0

Es scheint, als würde die Doktrin die Entitäten mit allen geerbten Feldern nur korrekt erstellen, wenn kein Fehler in Ihrem Mapping/Schema vorhanden ist.

Ich versuchte zu überprüfen, ob meine Zuordnung in Ordnung war, wie in dieser Antwort auf eine ähnliche Frage erläutert: https://stackoverflow.com/a/21155874/3864997. Das ergab keine Fehler, also habe ich mir die anderen Befehle der Doktrin angeschaut.

Ich lief php bin/console doctrine:schema:validate und wurde informiert, dass einige Zuordnung auf anderen Entitäten (sie hatten keine Beziehung zu den Entitäten für FOSMessageBundle erforderlich) war ungültig. Das kam mir komisch vor, da die Debug-Leiste in Symfony mir diese nicht gezeigt hat, obwohl es mir in der Vergangenheit ähnliche Fehler gezeigt hat.

Ich reparierte diese und lief dann php bin/console doctrine:schema:update --dump-sql. Die Ausgabe enthielt jetzt die Anweisungen zum Hinzufügen der fehlenden geerbten Felder zur Datenbank.