さて、次のようなものから始めることができると思います:
class Users extends Eloquent {
protected $table = 'users';
public function profile()
{
return $this->belongsTo('Profile');
}
public function followers()
{
return $this->hasMany('Follower', 'follower_id', 'id');
}
public function following()
{
return $this->hasMany('Follower', 'following_id', 'id');
}
}
class Hab extends Eloquent {
protected $table = 'habs';
public function user()
{
return $this->belongsTo('User');
}
}
class Follower extends Eloquent {
protected $table = 'followers';
}
class Profile extends Eloquent {
protected $table = 'profiles';
}
そして、次のことができるはずです。
通常ユーザーを選択
$user = User::find(1);
Habs を取得する
$habs = $user->habs;
フォロワーを取得する
$followers = $user->followers;
彼/彼女をフォローしている人を取得する
$following = $user->following;
フォロワーのすべてのハブを取得する
foreach($user->followers as $follower)
{
$followerEmail = $follower->email;
$followerName = $follower->profile->name;
$followerHabs = $follower->habs;
}
フォローしているユーザーからすべてのハブを取得する
foreach($user->following as $following)
{
$followingEmail = $following->email;
$followingName = $following->profile->name;
$followingHabs = $following->habs;
}