2012-04-13 7 views
2

Ich benutze CakePHP 2.0 Mein Modell Beziehung wie folgt:CakePHP Countercache - Logik Ausgabe

Benutzer hat viele Beitrag

Beitrag viele Comment

Beitrag viele wie hat

Bemerkung viele hat ich ich eine Spalte „like_count“ eine Spalte „like_count“ und aktivieren Sie die countercache und In Comment Tabelle hinzugefügt hinzugefügt und aktivieren Sie die countercache

Tisch Wie

In Beitrag Tabelle Likes enthalten:

id, post_id, comment_idu, user_id

und Modell wie folgt:

public $belongsTo = array(
    'Post' => array(
     'className' => 'Post', 
     'foreignKey' => 'post_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    ), 
    'Comment' => array(
     'className' => 'Comment', 
     'foreignKey' => 'comment_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    )) 

Seine Arbeits Feine ..

aber jetzt brauche ich total wie Zahl zu tun (Beitrag wie Count + Kommentar wie count) für jeden Benutzer. Also plante ich, ein Feld in der Benutzer-Tabelle hinzuzufügen und aktivieren Sie den Countercache aber total strucked .. was wird die Spalte sein Name, den ich in der Benutzer-Tabelle hinzufügen muss und wo ich Countercache setzen muss => true. Ich weiß nicht, wie ich weiter gehen soll.

Antwort

1

Fügen Sie das folgende zu Ihrem Array $ belongsTo hinzu.

'User' => array(
     'className' => 'User', 
     'foreignKey' => 'user_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    ), 

Und Sie werden eine like_count Spalte in der users Tabelle hinzuzufügen.


Und in Ihrem UserModel Sie benötigen einen HasMany für Größen wie natürlich hinzuzufügen.

+0

Seine funktioniert .. gut – AnNaMaLaI

+0

Froh, dass ich geholfen habe! – Joep