in ,

कैसे Laravel में एक डेटाबेस में एक से अधिक चेकबॉक्स मान संग्रहीत करने के लिए?

मुझे Laravel में डेटाबेस में चेकबॉक्स मानों को संग्रहीत करने की आवश्यकता है। कैसे करें ?

कैसे Laravel में एक डेटाबेस में एक से अधिक चेकबॉक्स मान संग्रहीत करने के लिए?
कैसे Laravel में एक डेटाबेस में एक से अधिक चेकबॉक्स मान संग्रहीत करने के लिए?

Laravel में एक डेटाबेस में कई चेकबॉक्स के मान को स्टोर करने के कई तरीके हैं। यहाँ कुछ विकल्प दिए गए हैं:

  1. एक "बूलियन" प्रकार के क्षेत्र का प्रयोग करें : प्रत्येक चेकबॉक्स को आपके डेटाबेस में बूलियन प्रकार के क्षेत्र में "सही" या "गलत" के रूप में सहेजा जा सकता है।
  2. एक "पाठ" प्रकार फ़ील्ड का उपयोग करें : आप प्रत्येक मान को अल्पविराम से अलग करते हुए, टेक्स्ट प्रकार फ़ील्ड में सभी चेक किए गए चेकबॉक्स के मान संग्रहीत कर सकते हैं। उदाहरण के लिए, यदि उपयोगकर्ता ने "फल" और "सब्जियां" बक्से की जांच की है, तो आप इस जानकारी को टेक्स्ट प्रकार के क्षेत्र में "फल, सब्जियां" के रूप में सहेज सकते हैं।
  3. रिलेशनशिप टेबल का प्रयोग करें : यदि आपके पास कई चेकबॉक्स हैं जो एक ही रिकॉर्ड से जुड़े हैं, तो आप इस डेटा को स्टोर करने के लिए रिलेशन टेबल का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपके पास "श्रेणियां" कॉलम वाली "उत्पाद" तालिका है, तो आप एक "उत्पाद_श्रेणियां" तालिका बना सकते हैं जो चयनित श्रेणियों को प्रत्येक उत्पाद से जोड़ती है।
  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 में एकाधिक चेकबॉक्स मानों को संग्रहीत करने के लिए नमूना कोड

लारवेल में एक डेटाबेस में कई चेकबॉक्स के मूल्यों को संग्रहीत करने के लिए यहां कुछ नमूना कोड दिए गए हैं:

एक "बूलियन" प्रकार के क्षेत्र का प्रयोग करें

"उपयोगकर्ता" तालिका में "सदस्यता_न्यूज़लेटर" बूलियन कॉलम का निर्माण:

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

फ़ॉर्म सबमिट करते समय न्यूज़लेटर के लिए उपयोगकर्ता की सदस्यता का पंजीकरण:

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

एक "पाठ" प्रकार फ़ील्ड का उपयोग करें

"सर्वेक्षण" तालिका में पाठ प्रकार के "विकल्प_चयन" कॉलम का निर्माण:

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" के साथ तालिका "श्रेणियां_उत्पाद" का निर्माण:

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

एक "तालिका" प्रकार फ़ील्ड का प्रयोग करें

तालिका "पोल" में तालिका प्रकार के "विकल्प_चयनित" कॉलम का निर्माण (यदि आप 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]

द्वारा लिखित एंटोन गिल्डब्रांड

एंटन अपने सहयोगियों और डेवलपर समुदाय के साथ टिप्स और कोड समाधान साझा करने के जुनून के साथ एक पूर्ण स्टैक डेवलपर है। फ्रंट-एंड और बैक-एंड तकनीकों में एक ठोस पृष्ठभूमि के साथ, एंटोन विभिन्न प्रकार की प्रोग्रामिंग भाषाओं और रूपरेखाओं में कुशल हैं। वह ऑनलाइन डेवलपर फ़ोरम का एक सक्रिय सदस्य है और प्रोग्रामिंग चुनौतियों को हल करने में दूसरों की मदद करने के लिए नियमित रूप से विचारों और समाधानों का योगदान देता है। अपने खाली समय में, एंटन को क्षेत्र में नवीनतम रुझानों और प्रौद्योगिकियों पर अद्यतित रहने और नए उपकरणों और रूपरेखाओं के साथ प्रयोग करने में आनंद आता है।

एक टिप्पणी छोड़ दो

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के रूप में चिह्नित कर रहे हैं *

तुम्हें क्या लगता है?