in ,

লারাভেলের একটি ডাটাবেসে একাধিক চেকবক্স মান কীভাবে সংরক্ষণ করবেন?

আমাকে লারাভেলের ডাটাবেসে চেকবক্স মান সংরক্ষণ করতে হবে। কিভাবে করবেন ?

লারাভেলের একটি ডাটাবেসে একাধিক চেকবক্স মান কীভাবে সংরক্ষণ করবেন?
লারাভেলের একটি ডাটাবেসে একাধিক চেকবক্স মান কীভাবে সংরক্ষণ করবেন?

লারাভেলের একটি ডাটাবেসে একাধিক চেকবক্সের মান সংরক্ষণ করার বিভিন্ন উপায় রয়েছে। এখানে কিছু বিকল্প আছে:

  1. একটি "বুলিয়ান" টাইপ ক্ষেত্র ব্যবহার করুন : প্রতিটি চেকবক্স আপনার ডাটাবেসের একটি বুলিয়ান টাইপ ক্ষেত্রে "সত্য" বা "মিথ্যা" হিসাবে সংরক্ষণ করা যেতে পারে।
  2. একটি "টেক্সট" টাইপ ক্ষেত্র ব্যবহার করুন : আপনি একটি টেক্সট টাইপ ক্ষেত্রে সমস্ত চেক করা চেকবক্সের মান সংরক্ষণ করতে পারেন, প্রতিটি মান একটি কমা দিয়ে আলাদা করে। উদাহরণস্বরূপ, যদি ব্যবহারকারী "ফল" এবং "শাকসবজি" বাক্সে টিক চিহ্ন দেন, তাহলে আপনি একটি পাঠ্য ধরনের ক্ষেত্রে এই তথ্যটিকে "ফল, সবজি" হিসাবে সংরক্ষণ করতে পারেন।
  3. একটি সম্পর্কের টেবিল ব্যবহার করুন : যদি আপনার কাছে একই রেকর্ডের সাথে লিঙ্ক করা একাধিক চেকবক্স থাকে, তাহলে আপনি এই ডেটা সংরক্ষণ করতে একটি সম্পর্ক টেবিল ব্যবহার করতে পারেন। উদাহরণ স্বরূপ, আপনার যদি "বিভাগ" কলাম সহ একটি "পণ্য" টেবিল থাকে, তাহলে আপনি একটি "প্রোডাক্ট_বিভাগ" টেবিল তৈরি করতে পারেন যা প্রতিটি পণ্যের সাথে নির্বাচিত বিভাগগুলিকে লিঙ্ক করে।
  4. একটি "টেবিল" টাইপ ক্ষেত্র ব্যবহার করুন : আপনি যদি একটি ডাটাবেস ব্যবহার করেন যা অ্যারে সমর্থন করে (যেমন PostgreSQL), আপনি একটি অ্যারে টাইপ ক্ষেত্রে একাধিক চেকবক্সের মান সংরক্ষণ করতে পারেন। এটি আপনাকে একটি সম্পর্ক টেবিল ব্যবহার না করেই একটি একক ক্ষেত্রে একাধিক মান সঞ্চয় করার অনুমতি দেবে।

একটি অ্যারে ব্যবহার করে একটি ডাটাবেসে একাধিক চেকবক্স মান সংরক্ষণ করুন

লারাভেলে, আপনি একটি একক ক্ষেত্রে মান সংরক্ষণ করতে একটি অ্যারে ব্যবহার করে একটি ডাটাবেসে একাধিক চেকবক্স মান সংরক্ষণ করতে পারেন। আপনি কীভাবে এটি করতে পারেন তার একটি উদাহরণ এখানে রয়েছে:

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

একটি "টেক্সট" টাইপ ক্ষেত্র ব্যবহার করুন

"জরিপ" টেবিলে পাঠ্য প্রকারের "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" কলাম সহ "শ্রেণী_প্রোডাক্টস" টেবিল তৈরি করা:

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

এটি লক্ষ করা গুরুত্বপূর্ণ যে, যে কোনও ক্ষেত্রে, আপনাকে নিশ্চিত করতে হবে যে আপনার ডাটাবেসে সংরক্ষিত হওয়ার আগে আপনার চেকবক্সের মানগুলি সঠিকভাবে যাচাই করা হয়েছে এবং পরিষ্কার করা হয়েছে। আপনি এর জন্য লারাভেলের বৈধতা নিয়ন্ত্রণকারী এবং ডেটা ফিল্টার ব্যবহার করতে পারেন।

[মোট: 1 মানে: 5]

লিখেছেন অ্যান্টন গিল্ডব্র্যান্ড

অ্যান্টন একজন সম্পূর্ণ স্ট্যাক ডেভেলপার তার সহকর্মী এবং বিকাশকারী সম্প্রদায়ের সাথে কোড টিপস এবং সমাধানগুলি ভাগ করে নেওয়ার বিষয়ে উত্সাহী৷ ফ্রন্ট-এন্ড এবং ব্যাক-এন্ড প্রযুক্তিতে একটি শক্ত পটভূমি সহ, অ্যান্টন বিভিন্ন প্রোগ্রামিং ভাষা এবং কাঠামোতে দক্ষ। তিনি অনলাইন ডেভেলপার ফোরামের একজন সক্রিয় সদস্য এবং প্রোগ্রামিং চ্যালেঞ্জগুলি সমাধান করতে অন্যদের সাহায্য করার জন্য নিয়মিত ধারণা এবং সমাধান প্রদান করেন। তার অবসর সময়ে, অ্যান্টন ক্ষেত্রের সর্বশেষ প্রবণতা এবং প্রযুক্তি সম্পর্কে আপ টু ডেট থাকতে এবং নতুন সরঞ্জাম এবং কাঠামো নিয়ে পরীক্ষা করা উপভোগ করেন।

Laisser উন commentaire

আপনার ইমেইল ঠিকানা প্রচার করা হবে না. প্রয়োজনীয় ক্ষেত্রগুলি চিহ্নিত হয় *

আপনি কি মনে করেন?

387 পয়েন্ট
ভোট দিন ভোট