Laravel Eloquent用户关注帖子关系

时间:2014-02-05 14:30:06

标签: laravel eloquent

表:

用户

id

如下

id
user_id
follow_id

帖子

id
user_id

我想让用户关注用户的帖子。 我如何设置关系并获得 user->follow->post

1 个答案:

答案 0 :(得分:1)

假设用户可以拥有多个关注者,并且用户可以关注多个用户。您需要使用相同模型的多对多关系。

这是:

<?php 

class User extends Eloquent {

        ...

        public function followers()
        {
            return $this->belongsToMany('User', 'follows', 'user_id', 'follow_id');
        }

        public function follows()
        {
            return $this->belongsToMany('User', 'follows', 'follow_id', 'user_id');
        }

}

以下是您查看用户的方式

$user = User::find(1);

echo $user->follows()->first()->name;
echo $user->followers()->first()->name;

// or

foreach ($user->followers as $follower)
        echo $follower->name . '<br>';