繁体   English   中英

Laravel(雄辩)

[英]Laravel (Eloquent)

我想知道如何使用 Laravel Model & Eloquent 建立关系。

我有这样的数据结构

用户表

username
groups
id

组表

id
name
remark

我的问题是如何显示用户组(用户可以分配给多个组)以及如何计算分配给每个组的用户数量。

谢谢。

更新

public function store(Request $request){
    $member = new Member();
    $member->username = $request->input('name');
    $member->gender = $request->input('gender');
    $member->joindate = $request->input('joindate');
    $member->remarks = $request->input('remarks');
    if ($request->hasFile('photo')) {
        if ($request->file('photo')->isValid()) {
            $path = $this->upload($request);
        }
    }
    $member->save();

    foreach ($request->only('groups[]') as $key => $group){
        $pivot = new pivot();
        $pivot->user_id = ????? //how to get user id?
    }
}

public function upload(Request $request)
{
    $path = $request->file('photo')->store('profile');
    return $path;
}

那正确吗? 以及如何获取当前保存的user_id (它具有自动增量列)。

您将需要创建一个数据透视表,将每个用户分配到各自的组。

所以基本上你的表会是这样的:

用户表

id
username

组表

id
name
remark

用户 -> 组数据透视表

user_id
group_id

然后你可以在你的用户模型上使用 Eloquent 关系来定义你的关系方法,如下所示:

class User extends Model {

    public function groups() {

        return $this->belongsToMany(Group::class, 'user_group_pivot_table_name', 'user_id', 'group_id');

    }

}

最后,您可以通过执行以下操作返回所有用户组的集合:

$user->groups();

关于Eloquent ORM 的Laravel 文档也非常出色 狩猎快乐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM