如何使用laravel Elotenting执行一个有很多贯穿性的语句?

如何使用laravel Elotenting执行一个有很多贯穿性的语句?,laravel,laravel-4,Laravel,Laravel 4,假设我有三个表users、users\u groups和groups。如何通过users\u groups表获取用户的组 class User extends Eloquent { protected $table = 'users'; } class Groups extends Eloquent { protected $table = 'groups'; } class Usergroups extends Eloquent { protected $table

假设我有三个表users、users\u groups和groups。如何通过users\u groups表获取用户的组

class User extends Eloquent {
    protected $table = 'users';
}

class Groups extends Eloquent {
    protected $table = 'groups';
}

class Usergroups extends Eloquent {
    protected $table = 'users_groups';
}

根据您的要求,我为您的特定用例准备了一个简单的示例:

各表: Eloquent建议在这种情况下创建3个数据库表:
用户
组_用户

Laravel声明:

group\u user
表的名称是从相关模型名称的应用顺序中派生出来的

group\u user
表应包含列
user\u id
group\u id
,其中将包含组和用户条目的主键。
group\u user
表就是所谓的透视表

这符合(如果你感兴趣的话)

模型:
用户
模型应包含以下代码:

<?php 

class User extends Eloquent {

    //...Other code…

    public function groups()
    {
        return $this->belongsToMany('Group');
    }

} 
<?php

class Group extends Eloquent {

    //...Other code…

    public function users()
    {
        return $this->belongsToMany('User');
    }

    //...Other code…

}
您不需要您问题中的
用户组
模型

用法: 要检索特定用户所属的所有组,请执行以下操作:

$user = User::find($user_id);
$user_groups = $user->groups();
$group = Group::find($group_id);
$group_users = $group->users();
$user = User::find($user_id);
//Add a user
$user->groups()->attach($group_id);
//Detach a user
$user->groups()->detach($group_id);
同样,为了检索属于特定组的所有用户,您将执行以下操作:

$user = User::find($user_id);
$user_groups = $user->groups();
$group = Group::find($group_id);
$group_users = $group->users();
$user = User::find($user_id);
//Add a user
$user->groups()->attach($group_id);
//Detach a user
$user->groups()->detach($group_id);
要向组中添加/删除用户,请执行以下操作:

$user = User::find($user_id);
$user_groups = $user->groups();
$group = Group::find($group_id);
$group_users = $group->users();
$user = User::find($user_id);
//Add a user
$user->groups()->attach($group_id);
//Detach a user
$user->groups()->detach($group_id);
其他: 您应该在Laravel文档中阅读更多关于数据透视表的内容,以及关于在迁移中定义外键(用于数据透视表)的内容


我希望这有帮助

你想要的是一种多对多的关系。您可以查看文档。我希望这有帮助!你能给我举个例子说明我的情况吗