نوب
3 سال پیش توسط نوب مطرح شد
5 پاسخ

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

با سلام
داخل 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'));
    }

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


ثبت پرسش جدید
محمد عابدی
تخصص : Senior Web Developer
@abedim910 3 سال پیش مطرح شد
0

تو مدل 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
تخصص : Back-end Developer
@am1rreza 3 سال پیش مطرح شد
0

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

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

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


نوب
تخصص : کدنویس نوب :)
@yk5742g 3 سال پیش مطرح شد
0

@abedim910
سلام عزیز

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

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

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
0

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


نوب
تخصص : کدنویس نوب :)
@yk5742g 3 سال پیش مطرح شد
0

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


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

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