یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
Armin Rahmati
5 سال پیش توسط Armin Rahmati مطرح شد
4 پاسخ

نمایش اطلاعات در لاراول

سلام دوستان.
من تو سایتم دو تا کاربر دارم که یکی میتونه محصولات شرکتشو بزار و اون فرد بیاد محصولات رو نگاه کنه.
به عنوان مثال وقتی هر شرکت محصولشو ادد میکنه، داخل کنترلر این کدو مینویسم که به اون شرکت محصولات خودش فقط بهش نشون داده بشه و محصولات شرکت های دیگه بهش نشون داده نشه.
;products = auth()->user()->Product()->latest()->paginate(20)$
حالا برای اینکه تو صفحه اصلی سایت وقتی افراد میان و روی هر شرکت کلیک میکنن و میخوان ببینن که هر شرکت چه محصولاتی داره به جای کد بالا چه کدی باید قرار داد؟
وقتی کد زیر رو قرار میدم واسه همه ی شرکت ها همه محصولات رو نشون میده، که من میخوام برای هر شرکت فقط محصولات خودش رو نشون بده.
;products = Product::latest()->paginate(20)$


ثبت پرسش جدید
Seyyed Mojtaba Hoseyni
تخصص : برنامه نویس Laravel و ReactJS
@SMH118 5 سال پیش آپدیت شد
0

سلام
برای این کار شما میتونید از دستور where استفاده کنید.

$products = Product::where('company_id',$id)->paginate(20)

که اون $id آیدی همون شرکت هستش
البته شما میتونید به جای id از موارد دیگه ای هم استفاده کنید.

روش دوم استفاده از route model binding هستش به صورت زیر:

public function getProducts(Company $company){
    $products=$company->products()->paginate(20);
}

Armin Rahmati
@arminrahmati999 5 سال پیش آپدیت شد
0

@SMH118
از روش دوم استفاده کردم ولی هیچی نشون نمیده.


Seyyed Mojtaba Hoseyni
تخصص : برنامه نویس Laravel و ReactJS
@SMH118 5 سال پیش مطرح شد
0

دقت کنید که در route شما، باید پارامترش وجود داشته باشه به صورت زیر:

Route::get('/someurl/{company}','SomeController@getProducts');

مطمئن بشید که مقداری در دیتابیس وجود داشته باشه.
رابطه بین محصول و شرکت رو هم برسی کنید که درست باشه.
@arminrahmati999


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

یک مدل Company بسازید
و بین این مدل و Products رابطه الکوئنت رو بوجود بیارید و خیلی راحت محصولات مربوط به شرکت رو دریافت کنید
حتی میتونید Eager load هم بکنید که کوئری ها بهینه بشند
چیزی شبیه زیر:

$company = Company::find($company_id);
$company->load('products')->paginate(20);

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

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