Orm 拉维关系2表

Orm 拉维关系2表,orm,laravel,laravel-4,Orm,Laravel,Laravel 4,我有两张桌子要连接 First table = Friendship ID User1 = Tim User2 = Johny Accepted = 0/1 <- friends if accepted = 1 Second table = Rooms ID Owner Room_ID Roome_name 对不起,我的英语不好。这就是能言善辩的中的所有优点。你不必把放在任何地方!!你只要打个电话 $friends = Friendship::find($friend_id); $

我有两张桌子要连接

First table = Friendship
ID
User1 = Tim 
User2 = Johny
Accepted = 0/1 <- friends if accepted = 1

Second table = Rooms
ID
Owner 
Room_ID
Roome_name

对不起,我的英语不好。

这就是能言善辩的
中的所有优点。你不必把
放在任何地方!!你只要打个电话

$friends = Friendship::find($friend_id);
$friends->friendrooms()->get(); //To get a list of all rooms
。。。是的,就是这么简单


当你第二次把
放在
有许多
,雄辩的人已经告诉Laravel它应该对查询执行一种操作:
其中id='child\u id'
其中=foreign\u id=“id”
。我不知道我是否已经讲清楚了。任何疑问,请发表评论=D

假设您有一个users表,那么您希望将您的friends表用作用户自身的数据透视表。这听起来很复杂,但实际上却很简单

我修改了你的一些专栏,因为有一些东西没有太多意义。不确定为什么
房间
需要id列和房间id列。这将为您提供一个很好的基础,并且希望它对您来说是相当可扩展的。您可能需要一个
room\u user
表来存储谁在哪个房间

迁移 用户模型 使用
每天3个房间的逻辑并不真正属于这里。当允许他们创建房间时,这将是一个更大的验证问题。

嘿,我的房间需要房间ID,因为它是来自其他数据库的其他ID,我使用的是teamspeak 3 api框架,当用户创建房间时,服务器查询会给出房间ID,我需要这个ID作为邀请链接。我正在制作一个通知系统,当朋友创建房间时,这个链接需要房间id javascript:location.href='ts3server://localhost/?port=9987&cid= 所以,当用户点击它时,他会进入好友频道:)哦,酷,我把这些添加了回去,并修改了它输出的内容,所以它应该为您输出链接。
$friends = Friendship::find($friend_id);
$friends->friendrooms()->get(); //To get a list of all rooms
Schema::create('friends', function($table)
{
    $table->increments('id');
    $table->integer('user_id');
    $table->integer('friend_id');
    $table->boolean('accepted');
    $table->boolean('deleted');
    $table->timestamps();
});

Schema::create('rooms', function($table)
{
    $table->increments('id');
    $table->integer('user_id');  // The is room's owner.
    $table->string('description');
    $table->integer('room_id');
    $table->string('room_name');
    $table->timestamps();
});
class User extends Eloquent implements UserInterface, RemindableInterface {

    public function friends()
    {
        return $this->belongsToMany('User', 'friends', 'user_id', 'friend_id')->wherePivot('accepted', '1');
    }

    public function room()
    {
        return $this->hasOne('Room');
    }

    public function hasRoom()
    {
        return (bool)$this->room()->count();
    }
}
$user = User::find(1);

foreach($user->friends as $friend) {
    if($friend->hasRoom()) {
        echo "<a href='javascript:location.href='ts3server://localhost/?port=9987&cid=".$friend->room->room_id."'>Join ".$friend->room->name."</a>";
    }
}
$user = User::find(1);
    $friends = $user->friends()->paginate(15);

foreach($friends as $friend) {
    if($friend->hasRoom()) {
        foreach($friend->rooms as $room) {
            echo "<a href='javascript:location.href='ts3server://localhost/?port=9987&cid=".$friend->room->room_id."'>Join ".$friend->room->name."</a>";
        }
    }
}