簡體   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