🔶 چگونه دیتا براساس مقام در لاراول نمایش دهیم؟
فرض کنید می خواهید دیتا براساس مقام در یک صفحه نمایش دهید و در حالت عادی دو دیتای کلی در یک صفحه نشون میده هم در مدیر و کاربر عادی.
کد زیر:
$tasks = Task::paginate(10);
$tasks = Task::where('owner_id', Auth::id())->paginate(10);
اما چگونه براساس کاربر مدیر و عادی این دو نمایش دهیم.
با استفاده تابع کوئری :
$tasks = Task::when(!Auth::user()->isAdmin(), function ($query) {
$query->where('owner_id', Auth::id());
})->paginate(10);
و اینم تابع Roles در مدل User:
public function isAdmin(): bool
{
return $this->roles()->where('title', 'isAdmin')->count() > 0;
}
اینجاست من دیتا براساس گیرنده owner_id یعنی کاربر عادی ثبت کردم و اگر کاربری که عضو شد به عنوان کاربر عادی دیتاهای مدیر کل سایت دیده نمی شود و فقط دیتا کاربر عادی می ببیند. بنابراین با
isAdmin()
براساس مقام در نمایش دیتاها محدودیت ایجاد کردم.
#لاراول
@TheRaymondDev