تمدید شد! تا ۶۰ درصد تخفیف شگفت انگیز نوروزی! {{افزایش قیمت آموزشها در سال جدید}}
اطلاعات بیشتر..سلام من قطعه کدی دارم به شکل زیر که داخل کنترلر تعریف کردم:
$classprograms = Classprogram::orderBy('created_at', 'desc');
if (request()->has('search')) {
[$classprograms = $classprograms->where('class', 'like', '%' . request()->get('search', '') . '%')];
[$classprograms = $classprograms->where('day', 'like', '' . request()->get('search2', '') . '%')];
[$classprograms = $classprograms->where('book_id', 'like', '%' . request()->get('search3', '') . '%')];
}
return view('admin.classprograms.index', ['classprograms' => $classprograms->paginate(10)]);
}
در قسمت جستجو فیلدی دارم به عنوان book_id که کلید خارجی از جدول book هستش
حالا من دوتا سوال دارم:
اول اینکه من وقتی جستجو میکنم مثلا نام کلاس رو میکنم فقط با آی دی می تونم چطوری میشه طریق کلید خارجی به مقادیر جدول اشاره که که اینجا book هستش دست پیدا کرد من میخوام هنگام جستجو به جای آی دی نام کتاب رو بزنه و براش بیاره
نکته دوم اینکه من وقتی جستجو میکنم چطور میشه حساس به کلمه باشه برای مثال الان میزنم در قسمت روز شنبه بعد تمام روزهای هفته رو نشون میده چون داخل همشون شنبه رو داره میخوام حساسش کنم
اگر راهنمایی کنید ممنون میشم
سلام و احترام
پیشاپیش سال نو رو به شما دوست عزیز تبریک عرض میکنم و باید بگم ک خوشحالم بابت تلاش و پیگیریتون در راستای برنامه نویسی.
اولا: برای گرفتن اسم کتاب، با توجه به اینکه bookid رو زدی توی جدول کلاسها، اگگه ریلیشینها رو درست زده باشی، کوئری اولت رو این مدلی بزن:
$classprograms = Classprogram::with('book')-»query()
اینجوری الان تمام کتابهای این کلاس، باهاش برمیگرده.
مرحله بعد بیا شرط بزار، نه به صورت کلی. برای هرر سرچی بیا یه ایف قرار بده.. if و هر کوئریو توی شرط خودش بزا، یعنی ستا شرط باید باشه.. اینطوری در صورتی که ریکوئست اون کلیدو داشته باشه،کوئریه مربوطه بهش زده میشه.
دوما: برای گرفتن روزهای هفته، بله میشه با کوئری این مورد رو هندل کرد، منتهی روزهای هفته رو که نباید توی input سرچ بنویسن ک، به صورت سلکت باکس بزاری کاملا مناسب تره، کلید دقیقش گرفته میشه اینطوری و همونو میتونی بزاری توی کوئری ک دقیق پیداش کنه.
سوالی بود دقیق تر بپرسید با کد، عرض میکنم خدمتتون.
همچنین من با موبال کد نوشتم، خطای سینتکسی داره اینو کپی نکن، از اول بنویس خودت همین مدلی.
دوست عزیز وقتی چیزی که ما توضیح دادیم اون هدف شما از پیاده سازی نبوده، خواهشا با دیتیل بیشتری شرح بدید که بنده متوجه بشم و بتونم راهنمایی کنم. نه ک صرفا بگید من منظورم این نبود!!! چیه پس منظورتون؟ ممنون میشم اون منظوره رو شرح بدید که کمکی از دست ما هم بر بیاد.
سلام وقت بخیر و پیشاپیش عیدتون مبارک
من جدولی دارم به نام Users با مقادیر زیر
id / name / lastname / mobile / pic و .........
یک جدولی به نام ClassPrograms دارم با مقادیر زیر
id / user_id / class / time / date / day
در جدول ClassPrograms نام و نام خانوادگی و .... رو داره از جدول Users فراخوانی یا ثبت میکنم که کلید هستش user_id
به این روش هم دارم نمایشش میدم
{{ $classprogram->user->lastname}}
خب تا اینجا مشکلی نیست.....
در همین صفحه ClassPrograms من در فرم جستجو وقتی میام جستجو کنم خب اگر آی دی یوزر یا کلاس، ساعت شروع و تاریخ رو جستجو کنم مشکلی نیست.
ولی نمیدونم چطوری از user_id دسترسی پیدا کنم به مقادیر دیگریش مثل نام و ....
الان مشکلم اینجاست که چطوری میشه در کادر جستجو به جای جستجو user_id که کاربردی نداره دسترسی به مقادیرش مثل نام و ... داشته باشم.
امیدوارم منظورم رو متوجه شده باشید.
سلام و احترام.
سال نو رو به شما دوست عزیز تبریک میگم.
آقای رجبی بنده بازم پاسخم همون پیام قبل هست.. وقتی توی ریلیشن میخوای به مقادیرِ اونطرف دسترسی داشته باشی، باید یه with بزنی، و توی ()with اسم ریلیشنتو که توی مدل اعمال کردی قرار بدی. دقیقا توی کدی که توی پیام اولم بهتون دادم، به جای book بنویس user. و تهش یه get و یه ()toArrat بزن. میبینی که برنامه کلاسی، به همراه اسمش اطلاعات کاربرش بالا میاد.. حالا من گفتم بزن user ولی خب شما هر اسمی که توی ریلیشنتون تعریف کردینو باید بزنین ک احتمالا همون user باشه چون ریلیشنتون ظاهرا one to many هستش.
وقتی که بزنین classProgram::with(user) و تهش یه کوئری بندازین، مثل کد بالا یعنی، این الان آمادهست که شما بتونین روش شرط اعمال کنین. بگین اگه فلان چیز از ریکوئست اومد، فلان where رو به این شرط اضافه کن. حتی میتونین query رو هم نزنین تهش. تست کن اصلا برادر من. شما برای نمونه یکی از برنامه کلاسیهات رو بگیر و قبل از این که get یا first و ... این موارد رو بزنی، یه withبزن و توی کوتیشنی که میندازی داخلش، اسم ریلیشنتو بزار ک اینجا مال شما میشه user. یه toArray هم بزن ک بت نشونش بده در قالب صحیح. بعدا خودت متوجهش میشی که یوزر رو با تمامی اطلاعات آورده و گذاشته توی مدلِ برنامهی کلاسیت.
خیلی مورد سادهایه. تست کنی، خودت متوجه میشی و میتونی هندلش کنی. من مجدد دارم با مویایل پاسخ شمارو میدم. اگر حل نشد مشکلتون، بیان کنید برم سراغ لپ تاپ یه نمونه کد سرچ بنویسم خدمتتون به همین روش تقدیم کنم و تموم کنیم این کابوسو🫰♥️
سالتون پر برکت🌾
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟