[英]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.