جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

ذخیره کردن گروه و زیرگروه ها


2
0
707

سلام من یه فرمی دارم شبیه زیر است

گروه

میخواستم بدونم با استفاده از دیتابیس چطوری میشه جدول ها را ایجاد کرد؟

این فرم یک دسته بندی داره و هر دسته میتواند چندین گروه داشته باشه و هر گروه میتواند چندین زیر گروه داشته باشه

مانند تصویر

برند و رنگ هم گروه است و اپل و سامسونگ و آبی و قرمز میشه زیر گروه

چیزی که من ایجاد کردم چچهار تا جدول است

public function up()
{
    Schema::create('check_boxes', function (Blueprint $table) {
        $table->id();
        $table->foreignId('filter_id')->constrained()->cascadeOnDelete();
        $table->string('checkbox');
        $table->timestamps();
    });
}

public function up()
{
    Schema::create('colors', function (Blueprint $table) {
        $table->id();
        $table->string('color_name');
        $table->string('color_code');
        $table->timestamps();
    });
}

public function up()
{
    Schema::create('filters', function (Blueprint $table) {
        $table->id();
        $table->foreignId('category_id')->constrained()->cascadeOnDelete();
        $table->string('name');
        $table->string('latin');
        $table->boolean('field');
        $table->timestamps();
    });

    Schema::create('color_filter', function (Blueprint $table) {
        $table->foreignId('color_id')->constrained()->cascadeOnDelete();
        $table->foreignId('filter_id')->constrained()->cascadeOnDelete();
        $table->primary(['color_id', 'filter_id']);
    });
}

مشکل من این است که چطوری بفهمونم فلان زیر گروه والد فلان گروه است parent_id را در کجای جدول بالا قرار بدهم

public function store(Request $request)
{
    if ($request->filters) {
        foreach ($request->filters as $filter) {
            $filter = Filter::create([
                'name' => $filter['name'],
                'latin' => $filter['latin'],
                'field' => $filter['field'],
                'category_id' => $request->category_id,
            ]);
        }
        if ($request->checkbox) {
            foreach($request->checkbox as $key => $checkbox) {
                $filter->checkBoxes()->create([
                    'filter_id' => $filter->id,
                    'checkbox' => $request->checkbox[$key],
                ]);
            }
        }
        $filter->colors()->attach($request->color_id);
    }
    return redirect()->route('filters.index');
}

الان این کد بالا درست کار میکند و ذخیره سازی را انجام میدهد و خطا ندارد و مشکل من اینه parent_id را چجوری سیو کنم؟؟؟

اگر جایی هست که آنرا اشتباه وارد کردم همه کد را اصلاح کنید.

با تشکر

سایر لاراول
ویرایش شده در 3 سال قبل
سوال شده در Mahmoud Khosravi
138 امتیاز


الان مشخصا مشکلتون کجاست؟ برای فرمی که اسکرین شاتش رو گذاشتید، چند جدول ساده با یک سری FK نیاز هست که روابط رو بهم متصل میکنه. برای گروه ها و زیر گروه ها، خب طبیعتا به 2 جدول دیگه نیاز دارید که هر کدوم یه فارن-کی داره و ارتباطش رو به parentش نشون میده. توی دیتابیس های رابطه ای، پیاده سازی این ساختار چیز پیچیده ای نیست. ــ ساناز رضایی در 3 سال قبل

من کدهای شما رو بررسی کردم. سوال اول من اینه که دقیقا چه چیزی «گروه» هست و چه چیزی «زیر گروه»؟ مثلا برند گروه هست و رنگ زیر گروه؟ چرا که این دو هوویت های مستقل از هم هستن و نمیشه این فرض رو براشون داشت. مفهوم گروه و زیر گروه زمانی پیدا میکنه که به صورت ارث بری باشه. مثلا توی دیجی کالا، یه گروه «لوازم دیجیتال» داریم، که این گروه یک سری زیر گروه داره مثل «دوربین، تلوزیون، موبایل و ..» .. الان اگه بخواید یک مثال بزنید از گروه و زیر گروه در پروژتون، چی میگید؟ ــ ساناز رضایی در 3 سال قبل

نمیدونم بعد از این مدت همواره مشکلتون پابرجاست یا حل شده؛ ولی باید بگم مشکل دقیقتون هنوز برای من شفاف نشده. اینکه چطوری بفهمید کدام گروه والد کدام زیرگروه هست که خب با join مشخص میشه مبنی بر ستونهایی که توی on میگذارید (این در حالتیه که بخواید query خام بنویسد). اگر هم بخواید از روابط خود لاراول استفاده کنید، که صرفا کافیه یک رابطه hasMany() در مدل گروه ها، و یک رابطه hasOne() توی مدل زیرگروه ها تعریف کنید و به راحتی به دیتای مورد نیاز دسترسی پیدا بکنید. ــ ساناز رضایی در 2 سال قبل

هیچ کدوم از انا نبود تمام کدها و جداول دیتابیس از اول نوشتم ــ Mahmoud Khosravi در 2 سال قبل

500 کاراکتر باقی مانده

1 جواب

1

سلام

جدولت باید parent_id داشته باشه و گروه اصلی null میشه و هر گروهی که میسازی parent ش باید کد اون زیر گروه باشه و الی اخر

وقتی کوئری میگیری میتونی از parent_id برش داری

ولی اگه اون root رو میخوای باید بندازی توی تابع بازگشتی و آی دی اصلی رو پیدا کنی

جواب داده شده در Omid Aghakhani
11 امتیاز


کد بده ــ Mahmoud Khosravi در 2 سال قبل

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


لام تا کام نسخه صفحه کلید نیز راه اندازی شده است. شما با استفاده از کلیدهای موجود بر روی صفحه کلید دستگاهتان می توانید با وب سایت ارتباط برقرار کنید.
لیست کلید های میانبر

تبلیغات توضیحی


داپ اَپ اولین پلتفرم کش‌بک در ایران
اگه میخوای از خریدهایی که میکنی، پاداش نقدی دریافت کنی داپ اَپ رو نصب کن.

تبلیغات تصویری