2016-06-28 10 views
0

Ich habe eine TabelleBenutzer viele Benutzer Beziehung hat, die CakePHP Way

Users: 
id|name|surname 

Jetzt muss ich Benutzer zueinander, so beziehen sich, dass jeder Benutzer viele Benutzer (von vielen Nutzern habe ich meine wirklich Freunde zB Facebook Freunde).

Nach CakePHP Konventionen man wohl mit einer wierd Tabellen wie dies enden würde:

Users 
id|name|surname 

UserUsers 
id|user_id|user_id 

Was ist der beste Weg ist, um meine Struktur zu ändern, um dies zu erreichen. Bitte beachten Sie, dass dies vielleicht schon mal gefragt wurde. ABER soweit ich gesucht habe, wurde es nicht speziell nach CakePHP 3.X gefragt, wobei CakePHP-Konventionen und alle in Betracht gezogen werden.

+2

Der Join-Tabellenname sollte UsersUsers sein und Sie dürfen nicht 2 user_id in derselben Datenbanktabelle abgelegt haben. Ich würde ein zweites Modell mit dem Namen Friends hinzufügen, das mit der Tabelle Users verbunden ist und ein Joins-Modell von UsersFriends enthält. – rrd

+0

Die Version von CakePHP, die Sie verwenden oder überhaupt CakePHP verwenden, hat keinen Einfluss auf die Antwort. Das ist ein bisschen wie die Frage nach der Wegbeschreibung von A nach B ** speziell für blaue Autos **. – AD7six

+0

Mögliches Duplikat von [Freundschaften in CakePHP 2.x] (http://stackoverflow.com/questions/11277974/friendships-in-cakephp-2-x) (Zuerst gefundenes Duplikat, wenn es Ihre Frage nicht löst, suchen Sie bitte für "Freundschaftsschema" oder ähnliches) – AD7six

Antwort

0

Ich glaube, du eine Beziehung, wie dies in Ihrem UsersTable in Kuchen 3 definieren:

$this->belongsTo('Users', [ 
      'className' => 'Users', 
      'foreignKey' => 'facebook_user_id', 
      'joinType' => 'LEFT' 
     ]); 

Sie erhalten eine facebook_user_id zu definieren und sie als ein Fremdschlüssel für Ihre ID auf.

Verwandte Themen