یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام دوستان
میخواستم بدونم چطور میتونم یک تابع مانند where در eloquent ایجاد کنم و چیزی رو که خودم میخوام بنویسم توش. مثلا بررسی کنه آیا وجه اشتراک بین یک آرایه که ما بهش میدیم و یک آرایه سریالایز شده در دیتابیش وجود داره یا نه... ممنونم از راهنماییتون
@milwad
@asp.gosk
@endworld
@mhyeganeh
سلام اگه منظورتو درست متوجه شده باشم میتونی
توی مدلی که میخای یه فانکشن بساز ی و از $this استفاده کنی
یا میتونی اسکوپ بسازی
https://laravel.com/docs/9.x/eloquent#local-scopes
سلام خسته نباشید
ببین یه وقتی هست که تو یه متد میخوای درست کنی که توی همه کنترلر ها داشته باشیش مثل مثلا where اون باید تو خوده لاراول اضافه کنی که اگه توسعه دهندش باشی میتونی و کار یکی دو روز نیست
اگه میخوای یه راهی هست به نام helper که از اون میتونی استفاده کنی لینک هم https://laravel-news.com/creating-helpers
اگه میخوای توی یه کنترلر یه متد داشته باشی که میتونی انتها اون اضافه کنی یا از Repository Pattern میتونی استفاده کنی
اگه میخوای یه متد توی مدل باشه که هر بار مدل رو صدا میزنی اون صدا زده بشه از این لینک استفاده کن https://laravel.com/docs/9.x/eloquent#local-scopes
@mehdi0121
@milwad
خیلی ممنونم از راهنمایی شما دوستان عزیز.. ببینید من میخوام مثلا فیلتر یک سری محصول رو بر اساس رنگ انجام بدم. کاربر چند تا رنگ رو انتخاب میکنه و یک آرایه شامل id اون رنگها رو میفرسته.. حالا من رنگهای موجود اون کالا رو توی دیتا بیس به صورت آرایه ذخیره کردم. میخوام اگر این دو آرایه حتی اگر یک عنصر یکسان هم داشتن اون کالا برای من بازگردونده بشه. ما توی where یک عنصر رو توی دیتا بیس با یک عنصر که از کلاینت میاد مقایسه میکنیم. حالا میخوام تابعی داشته باشم که پیش از paginate این کارو برام بکنه.. دلیل اصرارم برای اینکه پیش از paginate باشه این هست که مثلا ممکنه من 10تا کالا رو با paginate برگردونم و بعد از فیلتر اون 10 تا بشه 2 تا.. امیدوارم تونسته باشم منظورم رو برسونم.. یه چیزی مثل کد زیر میخوام:
$products = Product::where([array], [array])->paginate(10);
or
$products = Product::where(int, [array])->paginate(10);
در کد اول اگر دو آرایه یک استراک هم داشتند محصول رو برگردونه و در کد دوم اگر عدد داخل دیتا بیس برابر با یکی از عناصر آرایه کلاینت برابر بود محصول رو برگردونه.
سلام
اگه درست متوجه شده باشم میتونین از whereBlongsTo استفاده کنید
Post::whereBelongsTo($user)->get();
اگر رلیشن هم ندارن میتونین از whereIn استفاده کنید
$products = Product::whereIn(int, [array])->paginate(10);
منابع :
https://laravel.com/docs/9.x/collections#method-wherein
https://laravel.com/docs/9.x/eloquent-relationships#querying-belongs-to-relationships
ببین میتونی از whereIn استفاده کنی
کارش اینه که میاد اون چیزی که میفرستی در ایدی میبینه و اگه بود ارسال میکنه
سلام
نمیدونم مشکلت حل شده یا نه اگر نشد خوشحال میشم که بتونم بهت کمک کنم
اینجوری که متوجه شدم وقتی فیلتر انجام میشه با Form یسری ایدی میفرستی که هر ایدی رنگ متفاوب داره و حر محصول شما هم در دیتا بیس با همون ایدی که با رنگ مشخص است ذخیره شده میتونین از این کد استفاده کنید
Product::where('color' , '=' , $request->id)->latest()->get()
میره هر محصولی که با این ایدی برابر است را بر میگردونه. امید وارم تونسته باشم کمکی کنم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟