in ,

Laravel ۾ ڊيٽابيس ۾ ڪيترن ئي چيڪ باڪس ويلز کي ڪيئن ذخيرو ڪجي؟

مون کي Laravel ۾ ڊيٽابيس ۾ چيڪ بڪس ويلز کي ذخيرو ڪرڻ جي ضرورت آهي. ڪيئن ڪجي ؟

Laravel ۾ ڊيٽابيس ۾ ڪيترن ئي چيڪ باڪس ويلز کي ڪيئن ذخيرو ڪجي؟
Laravel ۾ ڊيٽابيس ۾ ڪيترن ئي چيڪ باڪس ويلز کي ڪيئن ذخيرو ڪجي؟

Laravel ۾ ڊيٽابيس ۾ ڪيترن ئي چيڪ بڪس جي قيمتن کي ذخيرو ڪرڻ جا ڪيترائي طريقا آهن. هتي ڪجھ اختيار آهن:

  1. استعمال ڪريو "بولين" قسم جي فيلڊ : هر چيڪ بڪس کي "سچو" يا "غلط" طور محفوظ ڪري سگھجي ٿو توهان جي ڊيٽابيس ۾ هڪ بولين قسم جي فيلڊ ۾.
  2. استعمال ڪريو "ٽيڪسٽ" قسم جي فيلڊ : توهان هڪ ٽيڪسٽ ٽائيپ فيلڊ ۾ سڀني چيڪ ٿيل چيڪ بڪس جي قيمتن کي ذخيرو ڪري سگهو ٿا، هر قيمت کي ڪاما سان الڳ ڪري. مثال طور، جيڪڏهن صارف "ميوا" ۽ "ڀاڄين" جي دٻي کي چيڪ ڪيو، ته توهان هن معلومات کي ٽيڪسٽ قسم جي فيلڊ ۾ "ميوو، ڀاڄيون" طور محفوظ ڪري سگهو ٿا.
  3. رشتي جي ٽيبل استعمال ڪريو : جيڪڏهن توهان وٽ ڪيترائي چيڪ بڪس آهن جيڪي هڪ ئي رڪارڊ سان ڳنڍيل آهن، توهان هن ڊيٽا کي ذخيرو ڪرڻ لاءِ هڪ تعلقي جدول استعمال ڪري سگهو ٿا. مثال طور، جيڪڏهن توهان وٽ "پراڊڪٽس" ٽيبل آهي "ڪئٽيگريز" ڪالمن سان، توهان ٺاهي سگهو ٿا "product_categories" جدول جيڪا هر پراڊڪٽ سان چونڊيل ڪيٽيگريز کي ڳنڍي ٿي.
  4. استعمال ڪريو "ٽيبل" قسم جي فيلڊ : جيڪڏھن توھان ھڪڙو ڊيٽابيس استعمال ڪري رھيا آھيو جيڪو صفن کي سپورٽ ڪري ٿو (جهڙوڪ PostgreSQL)، توھان ذخيرو ڪري سگھو ٿا گھڻن چيڪ بڪس جي قيمتن کي ھڪڙي قسم جي ميدان ۾. هي توهان کي اجازت ڏيندو ته ڪيترن ئي قدرن کي هڪ فيلڊ ۾ ذخيرو ڪرڻ جي بغير ڪنهن رشتي جي ٽيبل کي استعمال ڪرڻ جي.

ڊيٽابيس ۾ ڪيترن ئي چيڪ باڪس جي قيمتن کي ذخيرو ڪريو هڪ صف استعمال ڪندي

Laravel ۾، توهان هڪ ڊيٽابيس ۾ ڪيترن ئي چيڪ باڪس ويلز کي ذخيرو ڪري سگهو ٿا هڪ صف استعمال ڪندي قدرن کي هڪ فيلڊ ۾ ذخيرو ڪرڻ لاءِ. هتي هڪ مثال آهي ته توهان ڪيئن ڪري سگهو ٿا:

1. چيڪ بڪس جي قيمتن کي ذخيرو ڪرڻ لاءِ پنھنجي ڊيٽابيس جي ٽيبل تي فيلڊ شامل ڪرڻ لاءِ لڏپلاڻ ٺاھيو. مثال طور، جيڪڏهن توهان "اختيارن" نالي فيلڊ ۾ قدرن کي ذخيرو ڪرڻ چاهيو ٿا، توهان هيٺ ڏنل لڏپلاڻ استعمال ڪري سگهو ٿا:

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddOptionsToTableName extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('table_name', function (Blueprint $table) {
            $table->text('options')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('table_name', function (Blueprint $table) {
            $table->dropColumn('options');
        });
    }
}

2. توهان جي فارم ۾، هر اختيار لاء چيڪ بڪس ٺاهيو جيڪو توهان بچائڻ چاهيو ٿا. مثال طور :

<input type="checkbox" name="options[]" value="option1"> Option 1
<input type="checkbox" name="options[]" value="option2"> Option 2
<input type="checkbox" name="options[]" value="option3"> Option 3

3. توهان جي فارم جمع ڪرائڻ جي پروسيسنگ منطق ۾، منتخب ٿيل چيڪ بڪس جي قيمتن کي ٻيهر حاصل ڪريو ۽ انهن کي ڊيٽابيس ۾ ذخيرو ڪريو. مثال طور :

$options = $request->input('options');

$model = new Model();
$model->options = json_encode($options);
$model->save();

هي "اختيارن" جي فيلڊ ۾ منتخب ٿيل چيڪ بڪس جي قيمتن کي JSON انڪوڊ ٿيل صف طور محفوظ ڪري ٿو. توھان وري حاصل ڪري سگھوٿا ۽ چونڊيل قدرن کي ڏيکاري سگھوٿا JSON صف کي ڊيڪوڊنگ ڪندي جڏھن توھان ڊيٽابيس مان رڪارڊ حاصل ڪريو.

$model = Model::find($id);
$options = json_decode($model->options);

Laravel ۾ ڪيترن ئي چيڪ باڪس جي قيمتن کي ذخيرو ڪرڻ لاءِ نمونو ڪوڊ

هتي ڪي نمونا ڪوڊ آهن ڪيترن ئي چيڪ بڪس جي قيمتن کي محفوظ ڪرڻ لاءِ Laravel ۾ ڊيٽابيس ۾:

استعمال ڪريو "بولين" قسم جي فيلڊ

”سبسڪرپشن_نيوز ليٽر“ جي ٺاھڻ ”استعمال ڪندڙ“ ٽيبل ۾ بوليان ڪالم:

Schema::table('utilisateurs', function (Blueprint $table) {
    $table->boolean('abonnement_newsletter')->default(0);
});

استعمال ڪندڙ جي رڪنيت جي رجسٽريشن نيوز ليٽر ۾ جڏهن فارم جمع ڪرايو:

$utilisateur = new Utilisateur;
$utilisateur->abonnement_newsletter = $request->input('abonnement_newsletter');
$utilisateur->save();

استعمال ڪريو "ٽيڪسٽ" قسم جي فيلڊ

"سروي" ٽيبل ۾ ٽيڪسٽ قسم جي "options_sélectionées" ڪالمن جي تخليق:

Schema::table('sondage', function (Blueprint $table) {
    $table->text('options_sélectionnées');
});

فارم جمع ڪرڻ وقت صارف پاران چونڊيل اختيارن کي محفوظ ڪرڻ:

$sondage = new Sondage;
$sondage->options_sélectionnées = implode(',', $request->input('options'));
$sondage->save();

رشتي جي ٽيبل استعمال ڪريو

جدول جي ٺاھڻ "categories_products" ڪالمن سان "id_product" ۽ "id_category":

Schema::create('catégories_produits', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->integer('id_produit');
    $table->integer('id_catégorie');
    $table->timestamps();
});

فارم جمع ڪرڻ وقت صارف پاران چونڊيل زمرا محفوظ ڪرڻ:

$produit = new Produit;
$produit->save();

foreach ($request->input('catégories') as $catégorie) {
    $catégorie_produit = new CatégorieProduit;
    $catégorie_produit->id_produit = $produit->id;
    $catégorie_produit->id_catégorie = $catégorie;
    $catégorie_produit->save();
}

استعمال ڪريو "ٽيبل" قسم جي فيلڊ

ٽيبل جي قسم جي ڪالمن "options_selected" جي ٺاھڻ جي ٽيبل "پول" ۾ (جيڪڏھن توھان استعمال ڪريو ٿا PostgreSQL):

Schema::table('sondage', function (Blueprint $table) {
    $table->jsonb('options_sélectionnées');
});

فارم جمع ڪرڻ وقت صارف پاران چونڊيل اختيارن کي محفوظ ڪرڻ:

$sondage = new Sondage;
$sondage->options_sélectionnées = $request->input('options');
$sondage->save();

اهو نوٽ ڪرڻ ضروري آهي ته، ڪنهن به صورت ۾، توهان کي پڪ ڪرڻ جي ضرورت پوندي ته توهان جي چيڪ بڪس جي قيمت صحيح طور تي تصديق ٿيل آهن ۽ توهان جي ڊيٽابيس ۾ محفوظ ٿيڻ کان اڳ صاف ڪيو وڃي. توھان استعمال ڪري سگھوٿا Laravel جي تصديق ڪنٽرولرز ۽ ڊيٽا فلٽر ھن لاءِ.

[ڪل: 1 مطلب: 5]

پاران لکيل Anton Gildebrand

Anton هڪ مڪمل اسٽيڪ ڊولپر آهي جيڪو پنهنجي ساٿين ۽ ڊولپر ڪميونٽي سان شيئرنگ ٽوٽس ۽ ڪوڊ حلن جي جذبي سان. فرنٽ-آخر ۽ پوئتي-آخر ٽيڪنالاجيز ۾ مضبوط پس منظر سان، انتون پروگرامنگ ٻولين ۽ فريم ورڪ جي مختلف قسمن ۾ ماهر آهي. هو آن لائن ڊولپر فورمز جو هڪ سرگرم ميمبر آهي ۽ پروگرامنگ جي چئلينجن کي حل ڪرڻ ۾ ٻين جي مدد ڪرڻ لاءِ باقاعدي خيالن ۽ حلن ۾ حصو وٺندو آهي. پنهنجي فارغ وقت ۾، انتون کي فيلڊ ۾ جديد ترين رجحانن ۽ ٽيڪنالاجيز تي تازه ڪاري ڪرڻ ۽ نون اوزارن ۽ فريم ورڪ سان تجربا ڪرڻ جو مزو اچي ٿو.

تبصرو ڪيو

توهان جو اي ميل پتو شايع نه ڪيو ويندو. گهري شعبن لڳل آهن *

توهان ڇا ٿا سوچيو؟

387 جون پوائينٽون:
اپڊيٽ ڪيو هيٺيونٽ