in ,

Kumaha nyimpen nilai sababaraha kotak centang dina database di Laravel?

Abdi kedah nyimpen nilai kotak centang dina database di Laravel. Kumaha carana?

Kumaha nyimpen nilai sababaraha kotak centang dina database di Laravel?
Kumaha nyimpen nilai sababaraha kotak centang dina database di Laravel?

Aya sababaraha cara pikeun nyimpen nilai sababaraha kotak centang dina database di Laravel. Ieu sababaraha pilihan:

  1. Paké widang tipe "boolean". : unggal kotak centang bisa disimpen salaku "leres" atawa "palsu" dina widang tipe boolean dina database Anjeun.
  2. Paké widang tipe "téks". : anjeun tiasa nyimpen nilai sadaya kotak centang dina widang tipe téks, misahkeun unggal nilai ku koma. Salaku conto, upami pangguna mariksa kotak "buah" sareng "sayur", anjeun tiasa nyimpen inpormasi ieu salaku "buah, sayuran" dina widang jinis téks.
  3. Paké tabel hubungan : Upami Anjeun gaduh sababaraha kotak centang nu numbu ka catetan sarua, Anjeun tiasa make tabel hubungan pikeun nyimpen data ieu. Contona, upami anjeun gaduh tabel "produk" sareng kolom "kategori", anjeun tiasa ngadamel tabel "product_categories" anu ngaitkeun kategori anu dipilih ka unggal produk.
  4. Paké widang tipe "tabel". : Upami anjeun nganggo database anu ngadukung arrays (sapertos PostgreSQL), anjeun tiasa nyimpen nilai tina sababaraha kotak centang dina widang tipe array. Ieu bakal ngidinan Anjeun pikeun nyimpen sababaraha nilai dina widang tunggal tanpa kudu make tabel hubungan.

Nyimpen sababaraha nilai kotak centang dina pangkalan data nganggo array

Dina Laravel, anjeun tiasa nyimpen sababaraha nilai kotak centang dina pangkalan data ku ngagunakeun susunan pikeun nyimpen nilai dina hiji widang. Ieu conto kumaha anjeun tiasa ngalakukeunana:

1. Jieun migrasi pikeun nambahkeun widang ka tabel database anjeun pikeun nyimpen nilai centang. Contona, upami anjeun hoyong nyimpen nilai dina widang disebut "pilihan", anjeun tiasa nganggo migrasi handap:

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. Dina formulir Anjeun, jieun kotak centang pikeun tiap pilihan nu Anjeun hoyong simpen. Contona :

<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. Dina logika pamrosésan formulir kiriman anjeun, kéngingkeun nilai kotak centang anu dipilih sareng simpen dina pangkalan data. Contona :

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

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

Ieu nyimpen nilai tina kotak centang nu dipilih dina widang "pilihan" salaku susunan JSON disandikeun. Anjeun teras tiasa nyandak sareng ningalikeun nilai-nilai anu dipilih ku ngadekodekeun susunan JSON nalika anjeun nyandak catetan tina pangkalan data.

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

Sampel kode pikeun nyimpen sababaraha nilai kotak centang dina Laravel

Ieu sababaraha kode sampel pikeun nyimpen nilai sababaraha kotak centang dina database di Laravel:

Paké widang tipe "boolean".

Nyiptakeun kolom boolean "subscription_newsletter" dina tabel "pamaké":

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

Pendaptaran langganan pangguna kana buletin nalika ngirimkeun formulir:

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

Paké widang tipe "téks".

Nyiptakeun kolom "options_séléctionées" jinis téks dina tabel "survey":

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

Nyimpen pilihan anu dipilih ku pangguna nalika ngirimkeun formulir:

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

Paké tabel hubungan

Nyiptakeun tabel "categories_products" kalayan kolom "id_product" sareng "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 anu dipilih ku pangguna nalika ngirimkeun 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();
}

Paké widang tipe "tabel".

Nyiptakeun kolom "options_selected" tina jinis Asép Sunandar Sunarya dina tabel "polling" (upami anjeun nganggo PostgreSQL):

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

Nyimpen pilihan anu dipilih ku pangguna nalika ngirimkeun formulir:

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

Penting pikeun dicatet yén, dina hal naon waé, anjeun kedah mastikeun yén nilai kotak centang anjeun leres disahkeun sareng disanitisasi sateuacan disimpen kana pangkalan data anjeun. Anjeun tiasa nganggo pengendali validasi Laravel sareng saringan data pikeun ieu.

[Jumlah: 1 hartosna: 5]

Ditulis ku Anton Gildebrand

Anton mangrupikeun pamekar tumpukan lengkep sareng gairah pikeun ngabagi tip sareng solusi kode sareng kolega sareng komunitas pamekar. Kalayan latar tukang anu padet dina téknologi hareup-tungtung sareng tukang-tukang, Anton mahér dina rupa-rupa basa program sareng kerangka. Anjeunna mangrupa anggota aktif panglawungan pamekar online tur rutin nyumbangkeun gagasan jeung solusi pikeun mantuan batur ngajawab tantangan programming. Dina waktu luang-Na, Anton enjoys tetep up to date dina tren panganyarna na téhnologi di sawah jeung experimenting kalawan parabot anyar jeung frameworks.

Ninggalkeun comment hiji

Alamat email anjeun moal diterbitkeun. widang dibutuhkeun nu ditandaan *

Naon anu anjeun pikirkeun?

387 nunjuk
Upvote Downvote