in ,

Kepiye cara nyimpen pirang-pirang nilai kothak ing basis data ing Laravel?

Aku kudu nyimpen nilai kothak ing database ing Laravel. Kepiye carane?

Kepiye cara nyimpen pirang-pirang nilai kothak ing basis data ing Laravel?
Kepiye cara nyimpen pirang-pirang nilai kothak ing basis data ing Laravel?

Ana sawetara cara kanggo nyimpen nilai pirang-pirang kothak ing basis data ing Laravel. Ing ngisor iki sawetara opsi:

  1. Gunakake kolom jinis "boolean". : saben kothak centhang bisa disimpen minangka "bener" utawa "palsu" ing kolom jinis boolean ing basis data.
  2. Gunakake kolom jinis "teks". : sampeyan bisa nyimpen nilai kabeh kothak centhang ing kolom jinis teks, misahake saben nilai karo koma. Contone, yen pangguna mriksa kothak "woh-wohan" lan "sayuran", sampeyan bisa nyimpen informasi kasebut minangka "woh-wohan, sayuran" ing kolom jinis teks.
  3. Gunakake tabel hubungan : yen sampeyan duwe sawetara kothak sing disambung menyang rekaman padha, sampeyan bisa nggunakake tabel hubungan kanggo nyimpen data iki. Contone, yen sampeyan duwe tabel "produk" kanthi kolom "kategori", sampeyan bisa nggawe tabel "kategori_produk" sing nyambungake kategori sing dipilih menyang saben produk.
  4. Gunakake kolom jinis "tabel". : Yen sampeyan nggunakake database sing ndhukung array (kaya PostgreSQL), sampeyan bisa nyimpen nilai saka macem-macem kothak centhang ing kolom jinis array. Iki bakal ngidini sampeyan nyimpen macem-macem nilai ing lapangan siji tanpa kudu nggunakake tabel hubungan.

Simpen sawetara nilai kothak centhang ing database nggunakake array

Ing Laravel, sampeyan bisa nyimpen pirang-pirang nilai kothak ing basis data kanthi nggunakake larik kanggo nyimpen nilai ing lapangan siji. Mangkene conto carane sampeyan bisa nindakake:

1. Gawe migrasi kanggo nambah kolom menyang tabel database kanggo nyimpen nilai kothak. Contone, yen sampeyan pengin nyimpen nilai ing kolom sing diarani "opsi", sampeyan bisa nggunakake migrasi ing ngisor iki:

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. Ing formulir sampeyan, gawe kothak centhang kanggo saben pilihan sing pengin disimpen. Tuladhane :

<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. Ing logika pangolahan kiriman formulir, goleki nilai kothak sing dipilih lan simpen ing basis data. Tuladhane :

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

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

Iki nyimpen nilai kothak sing dipilih ing kolom "opsi" minangka array sing dienkode JSON. Sampeyan banjur bisa njupuk lan nampilake nilai sing dipilih kanthi dekoding array JSON nalika sampeyan njupuk rekaman saka database.

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

Kode conto kanggo nyimpen macem-macem nilai kothak ing Laravel

Ing ngisor iki sawetara kode conto kanggo nyimpen nilai pirang-pirang kothak ing basis data ing Laravel:

Gunakake kolom jinis "boolean".

Nggawe kolom boolean "subscription_newsletter" ing tabel "users":

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

Registrasi langganan pangguna menyang buletin nalika ngirim formulir:

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

Gunakake kolom jinis "teks".

Nggawe kolom "options_selectionées" saka jinis teks ing tabel "survey":

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

Nyimpen opsi sing dipilih pangguna nalika ngirim formulir:

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

Gunakake tabel hubungan

Nggawe tabel "categories_products" kanthi kolom "id_product" lan "id_category":

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

Nyimpen kategori sing dipilih pangguna nalika ngirim formulir:

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

Gunakake kolom jinis "tabel".

Nggawe kolom "options_selected" saka jinis tabel ing tabel "jajak pendapat" (yen sampeyan nggunakake PostgreSQL):

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

Nyimpen opsi sing dipilih pangguna nalika ngirim formulir:

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

Penting kanggo dicathet yen, ing kasus apa wae, sampeyan kudu mesthekake yen nilai kothak wis divalidasi lan diresiki kanthi bener sadurunge disimpen ing database sampeyan. Sampeyan bisa nggunakake pengontrol validasi Laravel lan saringan data kanggo iki.

[Jumlah: 1 tegese: 5]

ditulis dening Anton Gildebrand

Anton minangka pangembang tumpukan lengkap sing seneng nuduhake tips lan solusi kode karo kanca-kancane lan komunitas pangembang. Kanthi latar mburi sing kuat ing teknologi ngarep lan mburi, Anton pinter ing macem-macem basa pemrograman lan kerangka kerja. Dheweke dadi anggota aktif forum pangembang online lan ajeg nyumbang gagasan lan solusi kanggo mbantu wong liya ngatasi tantangan pemrograman. Ing kalodhangan, Anton seneng tetep anyar babagan tren lan teknologi paling anyar ing lapangan lan nyoba alat lan kerangka kerja anyar.

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Perangkat kothak ditandhani *

Apa sampeyan mikir?

387 TCTerms
Upvote Downvote