如何在Laravel 5.2中使用paginate与关系?

时间:2016-08-03 10:40:21

标签: php laravel laravel-5 eloquent laravel-5.2

我试图通过使用关系从数据库中选择数据时使用paginate。我有三个表,userscontactscontact_messages模型 UserContactContactMessage分别。

我正在尝试使用以下方法获取特定用户的所有消息:

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 个答案:

答案 0 :(得分:1)

尝试以下方法:

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