یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام دوستان.
من تو سایتم دو تا کاربر دارم که یکی میتونه محصولات شرکتشو بزار و اون فرد بیاد محصولات رو نگاه کنه.
به عنوان مثال وقتی هر شرکت محصولشو ادد میکنه، داخل کنترلر این کدو مینویسم که به اون شرکت محصولات خودش فقط بهش نشون داده بشه و محصولات شرکت های دیگه بهش نشون داده نشه.
;products = auth()->user()->Product()->latest()->paginate(20)$
حالا برای اینکه تو صفحه اصلی سایت وقتی افراد میان و روی هر شرکت کلیک میکنن و میخوان ببینن که هر شرکت چه محصولاتی داره به جای کد بالا چه کدی باید قرار داد؟
وقتی کد زیر رو قرار میدم واسه همه ی شرکت ها همه محصولات رو نشون میده، که من میخوام برای هر شرکت فقط محصولات خودش رو نشون بده.
;products = Product::latest()->paginate(20)$
سلام
برای این کار شما میتونید از دستور where استفاده کنید.
$products = Product::where('company_id',$id)->paginate(20)
که اون $id آیدی همون شرکت هستش
البته شما میتونید به جای id از موارد دیگه ای هم استفاده کنید.
روش دوم استفاده از route model binding هستش به صورت زیر:
public function getProducts(Company $company){
$products=$company->products()->paginate(20);
}
دقت کنید که در route شما، باید پارامترش وجود داشته باشه به صورت زیر:
Route::get('/someurl/{company}','SomeController@getProducts');
مطمئن بشید که مقداری در دیتابیس وجود داشته باشه.
رابطه بین محصول و شرکت رو هم برسی کنید که درست باشه.
@arminrahmati999
یک مدل Company بسازید
و بین این مدل و Products رابطه الکوئنت رو بوجود بیارید و خیلی راحت محصولات مربوط به شرکت رو دریافت کنید
حتی میتونید Eager load هم بکنید که کوئری ها بهینه بشند
چیزی شبیه زیر:
$company = Company::find($company_id);
$company->load('products')->paginate(20);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟