[Laravel] Xin cách gọi dữ liệu từ model
Hiện tại e có 3 bảng là: User, Role và Assignment dùng để phân quyền. Nhưng khi dùng $user->with('role')->get()
thì chỉ hiển thị data user và role. Vậy muốn hiển thị thêm assignment nữa thì làm sao ạ
class User extends Authenticatable
{
.....
public function role()
{
return $this->belongsToMany(RoleModel::class, 'user_role', 'user_id', 'role_id');
}
......
}
class RoleModel extends Model
{
public function assignment()
{
return $this->belongsToMany(AssignmentModel::class, 'role_assignment', 'role_id', 'assignment_id');
}
}
class AssignmentModel extends Model
{
public function role()
{
return $this->belongsToMany(RoleModel::class, 'role_assignment', 'assignment_id', 'role_id');
}
}
2 CÂU TRẢ LỜI
Bạn thử sửa lại câu truy vấn dùng with('role.assignment')
xem.
$users = User::query()
->with('role.assignment')
->get();
Nhưng mà trong dự án bạn nên thêm phân trang bằng hàm ->paginate(20)
nữa nha. Chứ dùng get()
nó sẽ lôi hết toàn bộ record trong bảng users
ra mất.
e đã thử câu truy vấn và nó chạy ra rồi ạ. Với cảm ơn a vì chia sẻ thêm cả kinh nghiệm nữa ạ
Ngoài lề 1 chút cho mình hỏi bạn tính thiết kế phân quyền như thế nào ? Có thể cho mình tham khảo ko?
Model thì mình thiết kế như ở trên đó rồi đó. Với mình vẫn chưa hiểu ý bạn là thiết kế gì
Ý là bạn thiết kế phân quyền như thế nào á? Bạn có file thiết kế phân quyền k? Có thể cho mình tham khảo đc ko