راکت

گرفتن کوئری خاص در لاراول 7

5 پاسخ

با سلام
داخل UsersController در متد Index دارم لیست تمام کاربرا را به صورت paginate میگیرم و مشکلی نیست
حالا کاربرا یه ستون در جدول user دارن به اسم admin_id که توش آیدی کاربری که نماینده کاربر موردنظر هست ذخیره میشه

من میخوام توی جدولی که در خروجی کد زیر به ویو میفرستم در یک ستون از جدول مشخصات نماینده کاربر هم بزارم ولی نمیدونم چطوری

public function index()
    {
        $users = User::where('role','!=' ,'10' )->orderBy('id', 'DESC')->paginate(20);
        return view('dashboard.users.list', compact('users'));
    }

من این کار را برای کاربرانی که وارد پروفایلشون میشم را انجام دادم ولی توی لیست کاربران نمیتونم
این کدی هست که برای کاربر تک مشخصات نمایندشو برمیگردونه

    public function show($id)
    {
        $user = User::findOrFail($id);
        $admins = User::where('role', 1)->get();
        $userAdmin = User::where('id', $user->admin_id)->first();
        return view('dashboard.users.show', compact('user', 'admins','userAdmin'));
    }

ممنون میشم کمک کنید
سپاس

نوب
نوب
@yk5742g
ثبت پرسش جدید

پاسخ‌ها

5
محمد عابدی
محمد عابدی
@abedim910

تخصص: Senior Web Developer

تو مدل User این متد رو اضافه کنید

public function admin() {
        return $this->belongsTo(User::class, 'admin_id');
    }

بعد به این صورت عمل کنید: with('admin')

$users = User::with('admin')->where('role','!=' ,'10' )->orderBy('id', 'DESC')->paginate(20);
        return view('dashboard.users.list', compact('users'));

بعد در ویو به این شکل دسترسی دارید:

$user->admin->name
Amir JEY
Amir JEY
@am1rreza

تخصص: Back-end Developer

سلام یاسین جان،
اینجوری که متوجه شدم شما میخوای به اطلاعات ( مثل اسم و فامیل ) admin_id رو بدست بیاری...
بهترین کاری که میتونی انجام بدی اینه که relation تعریف کنی بین مدل ها و از طریق رابطه ها به اطلاعات تیبل admin دسترسی پیدا کنی.

https://roocket.ir/series/learn-laravel/episode/51

این ویدیو رو ببین حتما

شاید پاسخ شما همین‌جا باشد

نوب
نوب
@yk5742g

تخصص: کدنویس نوب :)

@abedim910
سلام عزیز

من روابط بین جداول ندارم برای این کار
کلا تمام چیزهایی که گفتم توی جدولی به اسم Users هست
الان با کدی که شما دادین خطای زیر را دارم

Trying to get property 'name' of non-object (View: C:\wamp64\www\nsms\resources\views\dashboard\users\list.blade.php)

اینم تصویر ساختار جدول کاربران
اسکرین شات جدول

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

میتونی داخل یک جدول روابطی داشته باشی که به خود اون جدول اشاره کنه

نوب
نوب
@yk5742g

تخصص: کدنویس نوب :)

پس ظاهرا باید ستون Admin_id را بریزم تو یه جدول دیگه

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام