@mhyeganeh
سلام
من یه مشکل دارم میشه لطفا راه حل بگید.
سیستمی مینویسیم که نماینده و کاربر داره
هر نماینده میتونه بی نهایت کاربر زیرمجموعه داشته باشه و هر کاربر مربوط به یک نماینده هست
حالا هر کاربر مثلا تیکت های پشتیبانی ارسال کرده
میخوام اکانت نماینده وقتی وارد میشه به جز اینکه تیکت های خودش را میبینه بتونه تیکت های کاربرهای زیرمجموعه خودش هم در همون قسمت تیکت ها ببینه.
کد فعلی نمایش تیکت های کاربر که البته مال کاربرهای زیرمجموعه نماینده را نشون نمیده چون فقط داره تیکت ها خود کاربر وارد شده را میگیره
public function userTickets()
{
$tickets = Ticket::where('user_id', Auth::user()->id)->latest()->paginate();
$categories = categoryTicket::all();
return view('dashboard.user.ticket_list', compact('tickets', 'categories'));
}
این کد را نوشتم و درست نشون میده ولی نمیدونم بهینه هست یانه . فکر کنم بهینه نباشه چون باید توی 30 یا 40 تا متد دیگه هی آیدی کاربرای نماینده را بگیرم
public function userTickets()
{
$ids = [];
foreach (Auth::user()->children as $row) {
$ids[] = $row->id;
}
// $tickets = Ticket::where('user_id', Auth::user()->id)->latest()->paginate();
$tickets = Ticket::whereIn('user_id', $ids)->paginate();
$categories = categoryTicket::all();
return view('dashboard.user.ticket_list', compact('tickets', 'categories'));
}
کاربر ها با ستون adminid به نماینده ها متصل میشن
مدل user
public function parent()
{
return $this->belongsTo(User::class, 'admin_id');
}
public function children()
{
return $this->hasMany(User::class, 'admin_id');
}
public function tickets()
{
return $this->hasMany(Ticket::class);
}
مدل Ticket
public function user()
{
return $this->belongsTo(User::class);
}
جدول ticket هم با ستون userid به کاربر متصل هست.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟