0

4 つのテーブルに対して 4 つの雄弁なモデルがあります。ユーザー、プロフィール、ハブ、フォロワー。すべてのユーザーの投稿とユーザーのフォロワーの投稿を取得しようとしています。私のテーブルは次のようになりました。

ハブ

  • ID
  • ユーザーID
  • ハブ
  • created_at
  • updated_at

ユーザー

  • ID
  • ユーザー名
  • Eメール
  • created_at
  • updated_at

プロファイル

  • ID
  • ユーザーID
  • 名前
  • アバター
  • created_at
  • updated_at

フォロワー

  • ID

  • follower_id

  • following_id

  • created_at

  • updated_at

    モデルで関係を設定しました。Eloquent を使用して、ユーザーの投稿とユーザーがフォローしているユーザーの投稿を選択する方法。

4

3 に答える 3

1

さて、次のようなものから始めることができると思います:

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;

}
于 2013-11-09T11:13:37.487 に答える