2016-08-03 7 views
0

Я пытаюсь использовать paginate при выборе данных из базы данных с помощью отношений. У меня есть три таблицы, а именно users, contacts и contact_messages с моделямиUser, Contact, ContactMessage соответственно.Как использовать paginate с отношениями в Laravel 5.2?

Я пытаюсь извлечь все сообщения от конкретного пользователя, используя следующий метод:

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); 
    } 

По этому методу я получаю все сообщения, но я не мог постраничной $messages. Как я могу разбивать страницы на $messages? Может ли кто-нибудь помочь?

Мои модели и отношения приведены ниже:

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

и контакт Модель

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

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

наконец ContactMessage модель

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

ответ

1

Попробуйте следующее:

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

Большое спасибо. Он работает красиво – manoos

Смежные вопросы