راکت
نوب
نوب
5 سال پیش توسط نوب مطرح شد
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
@abedim9105 سال پیشمطرح شد
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
Amir JEY
تخصص :Back-end Developer
@am1rreza5 سال پیشمطرح شد
0

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

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

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


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

@abedim910
سلام عزیز

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

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

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


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

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


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

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


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

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