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>";
}
}
}