سلام دوستان
من دارم سایتی مثل دیوار میسازم
برای انکه هر دسته ویژگی خاصی داشته باشه میدونم که باید یه جدول دیگه بسازم که ویژگی ها رو توش بزارم
برام سواله چطور اون ویژگی ها رو مانند فیلد تکس باکس توی اپ یا سایت نشون بدیم که کاربر بتونه پرشون کنه؟
چطور در کنترلر براشون فانکشن بنویسم چون بالاخره ویژگی ها ثابت نیستن که از جدول میان
ممنون میشم راهنمایی کنید
@mihancivil
@miladboshagh
@SobhanDadkhah
سلام
مطمئنا توی فروشگاه های اینترنتی قسمت فیلتر محصولات در صفحه دسته بندی ها رو دیدید. هر دسته بندی یه سری فیلتر بندی های مختص نوع محصولات رو داره. مثلا موبایل در قسمت فیلترش مقدار رم و حافظه و ابعاد صفحه نمایش و ... رو انتخاب میکنه و نتیجه بر اساس اون فیلترها نمایش داده میشه
پس شما زمانی که برای یه دسته بندی میایید اون ویژگی هارو تعریف میکنید در جداول رابطه ای، پس میتونید اون ویژگی هارو هم توی صفحه دسته بندی برای فیلتر کردن نمایش بدید و مسئله اصلی اینه که زمانی که شما قراره یه آیتم و محصولی به سیستم اضافه بشه زمانی که دسته بندی مورد نظر انتخاب میشه به راحتی میتونید ویژگی های اون دسته بندی رو به کاربر نشون بدید تا مقادیرش رو پر کنه برای محصولش که اونهارو هم توی یه جدول رابطه ای دیگه ای اضافه میکنید و برای کاربرانی هم که میاند جستجو کنند یه محصولی رو اگه اون فیلتر ها رو انتخاب کردن از بین مقادیری که برای محصولات پر شده فیلتر میکنید. کلیات قضیه اینه. حالا شما باید دیتابیس و کدنویسی این مورد رو تحلیل کنید و هر طور که راحتید پیاده سازی کنید.
ببینید همون طور که خودتون فرمودید با بک اند موضوع مشکلی ندارید یعنی اینکه به هر دسته بندی یه سری ویژگی های خاص بدید مشکلی ندارید و فقط توی فرانت موندید چطوری مثلا اگه دسته بندی منزل بود یه چک باس تحت عنوان فروش یا اجاره قرار بدید؟
خوب ساده ترین حالتش اینه که یه شرط بذاری اگه این دسته ویژگی فروش یا اجاره رو داشت این چک باکس رو نمایش بده
مثلا یه همچین چیزی
@if ($category->type == 'home')
<div class="form-group">
<label for="switch">فروش</label>
<input type="checkbox" name="switch" id="switch" class="form-control">
</div>
@endif
قطعا من توی این کد از رابطه دیتابیس استفاده نکردم فقط خواستم منظورمو برسونم
ممنون ولی در \یاده سازی فرانت این کار موندم
مثلا من چند ویژگی در مورد دسته املاک دارم.
خوب اونا رو میتونم موقع ثبت آگهی برای کاربر نشون بدم ولی نمیدونم چطور input هارو برای اون ویژگی ها نشون بدم که id و ایناشون درست باشه.چطور مثلا موقعی که 10 تا اینپوت داینامیک مقدار میگیرم فانکشن در کنترلر هندلشون کنه
اینارو نمیتونم درست متوجه بشم
@araz2salmasi سلام.
اگر درست متوجه شده باشم منظور اینه که شما ده تا ویژگی دارین و میخواین اگر کاربر هرکدوم رو تیک زد برای اون محصول ثبت بشه ؟ یا اینکه بصورت دستی وارد بکنه ؟
روش پیاده سازیش به روابط دیتابیستون ربط داره چون به روش های مختلفی میشه پیاده کرد . اما برای مثال ویژگی بنام " متراژ " : خوب اگر چک باکس هست وقتی نمایشش میدین آیدی اون ویژگی رو هم توی value اینپوتتون سیو میکنید . و توی کنترلر با ریکوئست دریافتش میکنید . مثلا :
@foreach($attributes as $attribute)
<label>{{ $attribute->name }}</label> ---> size - metrazh - roomNumber
<input type="checkbox" name="attributes[]" value="{{ $attribute->id }}">
@endforeach
درواقع اینجا ویژگی هارو از دیتابیس میخونین و نمایش میدین . نکته کلیدی این هست که چون name رو بصورت آرایه گذاشتین اگر چنتا چک باکس ( چندین ویژگی ) هم با همین اسم تیک بخوره بصورت آرایه ایدی هاشون رو میتونید دریافت کنید.
اگر قراره کاربر مقداری رو دستی وارد کنه اینپوت text میذارین و name اینپوت رو بر اساس موردی که میخواین قرار میدین . مثلا :
<input type="text" name="size">
و بعد توی کنترلر دریافتش میکنید .
من خودم یکم شک کردم که درست متوجه نشده باشم منظورتون رو واسه همین یک پیشنهادی دارم :
اینجور موارد رو واسه خودتون روی کاغذ پیاده کنید قشنگ مرحله به مرحله تحلیلش کنید بعد وقتی میخواین واسه ی ما هم توضیح بدین با مثال سوالو مطرح میکنید و خیلی شفاف تره . چه بسا مواردی که با همون تحلیل یهویی توی ذهنتون جرقش بخوره و اصن خود به خود مشکلتونو خودتون حل کنید 😎
من کد ابتدایی واسه ایده دادن قرار دادم . اگر بد متوجه شدم عذر میخوام.🌹
@SobhanDadkhah
خیلی ممنون
این سوال هست هنوز برام که توی جدول ویژگی های من اسم ویژگی و ایدی دسته ذخیره میشه
وقتی من بیام ویژگی ها رو بخونم و انپوت بزارم براشون name اون ها رو چی بزارم که در جدول دیگه که برای مقدار ویژگی هاست چطور دریافتشون کنم در فانکشن و ذخیره کنم؟ یعنی همشون رو چطور میشه گرفت به صورت آرایه یا چی؟
بببخشید واقعا ذهنم هنگ کرده رو این و نمیتونم هندلش کنم
اینطوری یکم کمک کردن سخت میشه . شما باید سناریویی که میخواین پیاده کنید رو کامل توضیح بدین تا بشه راهنمایی کرد . من واقعا خودم نمیدونم شما دقیقا چیکار میخواین بکنین و اینکه ساختار دیتابیس هم خیلی مهمه واسه این کار . به نظرم سناریو رو از زبان یه فرد عادی بنویسید . یعنی یه جورایی از صفر نیاز هاتونو باید توضیح بدین که هم من هم دوستان بتونیم کمک کنیم . (یعنی باید فرض کنید که شما کارفرما هستین و بدون دانش برنامه نویسی میخواین امکانات سایتتون رو واسه یه برنامه نویس شرح بدین )
یا همینجا یا سوال جدیدی بسازید و سناریو رو کامل توضیح بدین . مثلا من میتونم بیام ویژگی های روتین مثل دیجی کالا مثل دیوار توضیح بدم ولی خوب شاید با چیزی که شما میخواین متفاوت باشه .
بببخشید واقعا ذهنم هنگ کرده رو این و نمیتونم هندلش کنم
مشکل شمارو قبلا خودم داشتم واسه همین میگم سناریو رو توضیح بدین تا کامل بتونیم راهنمایی کنیم و تو ذهنتون جا بگیره 🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟