2017-10-24 2 views
0

Ich bin verwirrt mit, was die Suchanfrage sein sollte, um die Freunde eines bestimmten Benutzers zu finden.Laravel Suchabfrage für Freunde des Benutzers

Ich habe eine Pivot-Tabelle für Freunde Beziehung erstellt.

Freunde Tabelle

id 
sender 
recipient 

Benutzertabelle

id 
name 
email 
password 
etc... 

Bitte leiten, was die Suchabfrage für Freunde für bestimmte Benutzer sein sollte.

+0

Wie diese beide Tabellen sind miteinander verwandt? –

Antwort

0

Sie benötigen einen viele zu viele Beziehung mit sich selbst es

class User extends Model 
{ 
    public function friends() 
    { 
     return $this->belongsToMany(self::class, 'friends', 'sender', 'recipient'); 
    } 
} 

Und Gebrauch zu erklären

$friends = User::find(3)->friends; 

Oder filtern, um die genannten Freunde Jon

$friends = User::find(3)->friends()->where('name', 'Jon')->get(); 
+0

Danke, es hat funktioniert. Und es ist sehr einfach. –

0

Wenn Sie die Modelle aufgebaut dann sein einfach:

User::friends(); 

Die Freunde() Funktion, die die Beziehung zwischen User-Modell und Freund Modell in diesem Beispiel beschrieben.

Beispiel für Benutzermodell Das zweite Argument in belongsToMany Funktion ist die Schwenktabellenname:

class User extends Model 
{ 
    public function friends() 
    { 
     return $this->belongsToMany("App\Friend", "user_friend"); 
    } 
} 

Beispiel Freund-Modell (in inverser abgefragt werden).

class Friend extends Model 
{ 
    public function friends() 
    { 
     return $this->belongsToMany("App\User", "user_friend"); 
    } 
} 
Verwandte Themen