Day 21 #100DaysOfCode : Học và tìm hiểu thêm mỗi ngày, lúc này covid , dịch bệnh quá, ở nhà tìm hiểu thêm, lưu trữ tại đây, có khi cần tới
//model User public function roles(){ $this->belongsToMany("User::class","user_role"); } //model Role public function users(){ $this->belongsToMany("Role::class","user_role"); }
Tạo template blade cho form
//form.blade.php <select name="role"> <option value="1">Admin</option> <option value="2">Member</option> </select>
//controller
Nhận Request từ form, trong file điều khiển ta có thể nhận như sau
$role = $request->role //get value from select option in form.blade.php $user = User::create($request->only('required fields ...')); //add data to table "users" $user->roles()->attach($role); //add data many to many in table user_role
Ví dụ cấu hình nó trong function register()
public function register (Request $request){ $role = $request->role; $user = User::create($request->only('required fields')); $user->roles()->attach($role or $request->role); }
Lấy thông tin user theo id, sau đó tìm lấy role của user đó
use App\User; $user = User::find(1); foreach ($user->roles as $role) { echo $role->Name;// name role }
Xóa mối quan hệ nhiều nhiều (many-to-many)
$user->roles()->detach(); $user->roles()->detach($roleId); //or $user = User::find(1); $user->roles()->detach([1, 2, 3]);