2016-08-03 41 views
0

Ich versuche, paginate bei der Auswahl von Daten aus der Datenbank mithilfe von Beziehungen zu verwenden. Ich habe drei Tabellen nämlich users, contacts und contact_messages mit ModelleUser, Contact, ContactMessage sind.Wie paginate mit Beziehungen in Laravel 5.2 zu verwenden?

Ich versuche, alle Nachrichten eines bestimmten Benutzers zu holen durch die folgende Methode:

public function listMessage($user_id){ 
     $user1 = User::find($user_id); 
     $messages = $user1->contact_messages; 
     return View::make('message.listmessage') 
     ->with('user_id', $user_id) 
     ->with('messages', $messages); 
    } 

Durch diese Methode, die ich alle Nachrichten immer bin, aber ich konnte nicht $messages Paginieren. Wie kann ich $messages paginieren? Kann jemand helfen?

Meine Modelle und Beziehungen sind unten angegeben:

class User extends Authenticatable 
{ 
    public function contacts() 
    { 
     return $this->hasMany('App\Contact'); 
    } 
    public function contact_messages() 
    { 
     return $this->hasManyThrough('App\ContactMessage', 'App\Contact'); 
    } 
} 

und Kontakt Modell ist

class Contact extends Model 
{ 
    public function user(){ 
     return $this->belongsTo('App\User'); 
    } 

    public function messages() 
    { 
     return $this->hasMany('App\ContactMessage'); 
    } 
} 

schließlich ContactMessage Modell

class ContactMessage extends Model 
{ 
    public function contact(){ 
     return $this->belongsTo('App\Contact'); 
    } 
} 

Antwort

1

Versuchen Sie, die folgende ist:

$messages = $user->contact_messages()->paginate(10); 
+0

Vielen Dank. Es funktioniert gut – manoos