menu ကို
in ,

Laravel ရှိ ဒေတာဘေ့စ်တွင် Checkbox အများအပြား၏ တန်ဖိုးများကို မည်သို့သိမ်းဆည်းရမည်နည်း။

Laravel ရှိ database တွင် checkbox တန်ဖိုးများကို သိမ်းဆည်းရန် လိုအပ်ပါသည်။ ဘယ်လိုလုပ်ရမလဲ?

Laravel ရှိ ဒေတာဘေ့စ်တွင် Checkbox အများအပြား၏ တန်ဖိုးများကို မည်သို့သိမ်းဆည်းရမည်နည်း။

Laravel ရှိဒေတာဘေ့စ်တစ်ခုတွင် checkbox အများအပြား၏တန်ဖိုးများကိုသိမ်းဆည်းရန်နည်းလမ်းများစွာရှိသည်။ ဤသည်မှာ ရွေးချယ်စရာအချို့ဖြစ်သည်-

  1. "boolean" အမျိုးအစားအကွက်ကို အသုံးပြုပါ။ : checkbox တစ်ခုစီကို သင့်ဒေတာဘေ့စ်ရှိ boolean အမျိုးအစားအကွက်တွင် "true" သို့မဟုတ် "false" အဖြစ် သိမ်းဆည်းနိုင်ပါသည်။
  2. "စာသား" အမျိုးအစားအကွက်ကိုသုံးပါ။ : တန်ဖိုးတစ်ခုစီကို ကော်မာဖြင့် ပိုင်းခြားထားသော စာသားအမျိုးအစားအကွက်တစ်ခုတွင် အမှန်ခြစ်ထားသော ဘောက်စ်အားလုံး၏ တန်ဖိုးများကို သိမ်းဆည်းနိုင်သည်။ ဥပမာအားဖြင့်၊ အသုံးပြုသူက "အသီးအနှံများ" နှင့် "ဟင်းသီးဟင်းရွက်များ" အကွက်များကို အမှတ်ခြစ်ထားပါက ဤအချက်အလက်ကို စာသားအမျိုးအစားအကွက်တွင် "အသီးအနှံများ၊ ဟင်းသီးဟင်းရွက်များ" အဖြစ် သိမ်းဆည်းနိုင်ပါသည်။
  3. ဆက်ဆံရေးဇယားကိုသုံးပါ။ : သင့်တွင် တူညီသော မှတ်တမ်းနှင့် ချိတ်ဆက်ထားသော အမှန်ခြစ်ဘောက်စ်များစွာ ရှိပါက၊ ဤဒေတာကို သိမ်းဆည်းရန် ဆက်စပ်ဇယားကို သင် အသုံးပြုနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ သင့်တွင် "အမျိုးအစားများ" ကော်လံပါသည့် "ထုတ်ကုန်များ" ဇယားတစ်ခုရှိပါက၊ သင်သည် ရွေးချယ်ထားသော အမျိုးအစားများကို ထုတ်ကုန်တစ်ခုစီသို့ ချိတ်ဆက်ပေးသည့် "product_categories" ဇယားကို ဖန်တီးနိုင်သည်။
  4. "ဇယား" အမျိုးအစားအကွက်ကို အသုံးပြုပါ။ : အကယ်၍ သင်သည် array များကို ပံ့ပိုးသည့် ဒေတာဘေ့စ် (PostgreSQL ကဲ့သို့) ကို အသုံးပြုနေပါက၊ သင်သည် array အမျိုးအစား အကွက်တစ်ခုတွင် checkboxes အများအပြား၏ တန်ဖိုးများကို သိမ်းဆည်းနိုင်ပါသည်။ ၎င်းသည် သင့်အား ဆက်ဆံရေးဇယားကို အသုံးမပြုဘဲ အကွက်တစ်ခုတွင် တန်ဖိုးများစွာကို သိမ်းဆည်းနိုင်မည်ဖြစ်သည်။

အခင်းအကျင်းတစ်ခုသုံးပြီး ဒေတာဘေ့စ်တစ်ခုတွင် checkbox တန်ဖိုးများစွာကို သိမ်းဆည်းပါ။

Laravel တွင်၊ သင်သည် ကွက်လပ်တစ်ခုတွင် တန်ဖိုးများကို သိမ်းဆည်းရန် array ကိုအသုံးပြုခြင်းဖြင့် ဒေတာဘေ့စ်တစ်ခုတွင် checkbox တန်ဖိုးများစွာကို သိမ်းဆည်းနိုင်သည်။ ဤသည်မှာ သင်လုပ်ဆောင်နိုင်ပုံကို ဥပမာတစ်ခုဖြစ်သည်။

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();

၎င်းသည် ရွေးချယ်ထားသော checkboxes များ၏တန်ဖိုးများကို JSON ကုဒ်လုပ်ထားသော array တစ်ခုအနေဖြင့် "options" အကွက်တွင် သိမ်းဆည်းထားသည်။ ထို့နောက် ဒေတာဘေ့စ်မှ မှတ်တမ်းကို ရယူသည့်အခါ JSON အခင်းအကျင်းကို ကုဒ်ကုဒ်ဖြင့် ရွေးချယ်ထားသော တန်ဖိုးများကို ပြန်လည်ရယူပြီး ပြသနိုင်သည်။

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

Laravel တွင် checkbox တန်ဖိုးများစွာကို သိမ်းဆည်းရန် နမူနာကုဒ်များ

ဤသည်မှာ Laravel ရှိဒေတာဘေ့စ်ရှိ checkbox အများအပြား၏တန်ဖိုးများကိုသိမ်းဆည်းရန်အတွက်နမူနာကုဒ်အချို့ဖြစ်သည်။

"boolean" အမျိုးအစားအကွက်ကို အသုံးပြုပါ။

"အသုံးပြုသူများ" ဇယားရှိ "subscription_newsletter" boolean ကော်လံကို ဖန်တီးခြင်း-

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();

ဆက်ဆံရေးဇယားကိုသုံးပါ။

"id_product" နှင့် "id_category" ကော်လံများဖြင့် "categories_products" ဇယားကို ဖန်တီးခြင်း-

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();

မည်သို့ပင်ဆိုစေကာမူ၊ သင်၏ checkbox တန်ဖိုးများကို သင့်ဒေတာဘေ့စ်သို့ မသိမ်းဆည်းမီ မှန်ကန်စွာအတည်ပြုပြီး သန့်ရှင်းကြောင်း သေချာစေရန်အတွက် အရေးကြီးကြောင်း သတိပြုရန်လိုပါသည်။ ၎င်းအတွက် Laravel ၏ validation controllers နှင့် data filter များကို သင်သုံးနိုင်သည်။

[စုစုပေါင်း - 1 ဆိုလိုရင်း- 5]

မှရေးသား Anton Gildebrand

Anton သည် သူ၏လုပ်ဖော်ကိုင်ဖက်များနှင့် developer အသိုင်းအဝိုင်းနှင့် ကုဒ်အကြံဉာဏ်များနှင့် ဖြေရှင်းချက်များကို မျှဝေခြင်းအတွက် စိတ်အားထက်သန်စွာ အပြည့်အဝ stack developer တစ်ဦးဖြစ်သည်။ Front-end နှင့် Back-end နည်းပညာများတွင် ခိုင်မာသောနောက်ခံဖြင့် Anton သည် ပရိုဂရမ်းမင်းဘာသာစကားများနှင့် framework အမျိုးမျိုးတွင် ကျွမ်းကျင်သည်။ သူသည် အွန်လိုင်းဆော့ဖ်ဝဲရေးသားသူဖိုရမ်များ၏ တက်ကြွသောအဖွဲ့ဝင်တစ်ဦးဖြစ်ပြီး အခြားသူများကို ပရိုဂရမ်ရေးဆွဲခြင်းဆိုင်ရာစိန်ခေါ်မှုများကို ကူညီဖြေရှင်းရန် အကြံဉာဏ်များနှင့် ဖြေရှင်းချက်များကို ပုံမှန်ပံ့ပိုးပေးပါသည်။ သူ၏အားလပ်ချိန်များတွင်၊ Anton သည် နယ်ပယ်တွင်းရှိ နောက်ဆုံးပေါ်ခေတ်ရေစီးကြောင်းများနှင့် နည်းပညာများကို အပ်ဒိတ်လုပ်ကာ ကိရိယာများနှင့် မူဘောင်အသစ်များကို စမ်းသပ်ခြင်းကို နှစ်သက်သည်။

တစ်ဦးစာပြန်ရန် Leave

မိုဘိုင်းဗားရှင်းမှ ထွက်ပါ။