in ,

Bagaimana cara menyimpan beberapa nilai Kotak centang dalam database di Laravel?

Saya perlu menyimpan nilai kotak centang di database di Laravel. Bagaimana melakukan ?

Bagaimana cara menyimpan beberapa nilai Kotak centang dalam database di Laravel?
Bagaimana cara menyimpan beberapa nilai Kotak centang dalam database di Laravel?

Ada beberapa cara untuk menyimpan nilai dari banyak kotak centang dalam database di Laravel. Berikut ini beberapa opsi:

  1. Gunakan bidang jenis "boolean". : setiap kotak centang dapat disimpan sebagai "true" atau "false" dalam bidang tipe boolean di database Anda.
  2. Gunakan bidang jenis "teks". : Anda dapat menyimpan nilai semua kotak centang yang dicentang di bidang jenis teks, memisahkan setiap nilai dengan koma. Misalnya, jika pengguna mencentang kotak "buah" dan "sayuran", Anda dapat menyimpan informasi ini sebagai "buah, sayuran" di bidang jenis teks.
  3. Gunakan tabel relasi : jika Anda memiliki beberapa kotak centang yang ditautkan ke rekaman yang sama, Anda dapat menggunakan tabel relasi untuk menyimpan data ini. Misalnya, jika Anda memiliki tabel "produk" dengan kolom "kategori", Anda dapat membuat tabel "kategori_produk" yang menautkan kategori yang dipilih ke setiap produk.
  4. Gunakan bidang jenis "tabel". : Jika Anda menggunakan database yang mendukung array (seperti PostgreSQL), Anda dapat menyimpan nilai dari beberapa kotak centang di bidang tipe array. Ini akan memungkinkan Anda untuk menyimpan banyak nilai dalam satu bidang tanpa harus menggunakan tabel hubungan.

Simpan beberapa nilai kotak centang dalam database menggunakan larik

Di Laravel, Anda dapat menyimpan beberapa nilai kotak centang dalam database dengan menggunakan larik untuk menyimpan nilai dalam satu bidang. Berikut adalah contoh bagaimana Anda dapat melakukannya:

1. Buat migrasi untuk menambahkan bidang ke tabel database Anda untuk menyimpan nilai kotak centang. Misalnya, jika Anda ingin menyimpan nilai dalam bidang yang disebut "opsi", Anda dapat menggunakan migrasi berikut:

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. Di formulir Anda, buat kotak centang untuk setiap opsi yang ingin Anda simpan. Sebagai contoh :

<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. Dalam logika pemrosesan pengiriman formulir Anda, ambil nilai kotak centang yang dipilih dan simpan di database. Sebagai contoh :

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

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

Ini menyimpan nilai dari kotak centang yang dipilih di bidang "opsi" sebagai larik yang disandikan JSON. Anda kemudian dapat mengambil dan menampilkan nilai yang dipilih dengan mendekode larik JSON saat Anda mengambil catatan dari database.

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

Contoh kode untuk menyimpan beberapa nilai kotak centang di Laravel

Berikut adalah beberapa contoh kode untuk menyimpan nilai dari beberapa kotak centang dalam database di Laravel:

Gunakan bidang jenis "boolean".

Pembuatan kolom boolean “subscription_newsletter” di tabel “users”:

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

Pendaftaran langganan pengguna ke buletin saat mengirimkan formulir:

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

Gunakan bidang jenis "teks".

Pembuatan kolom jenis teks "options_sélectionées" di tabel "survey":

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

Menyimpan opsi yang dipilih oleh pengguna saat mengirimkan formulir:

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

Gunakan tabel relasi

Pembuatan tabel "categories_products" dengan kolom "id_product" dan "id_category":

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

Menyimpan kategori yang dipilih oleh pengguna saat mengirimkan 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();
}

Gunakan bidang jenis "tabel".

Pembuatan kolom "options_selected" dari tipe tabel di tabel "poll" (jika Anda menggunakan PostgreSQL):

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

Menyimpan opsi yang dipilih oleh pengguna saat mengirimkan formulir:

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

Penting untuk diperhatikan bahwa, bagaimanapun juga, Anda perlu memastikan bahwa nilai kotak centang Anda telah divalidasi dan dibersihkan dengan benar sebelum disimpan ke database Anda. Anda dapat menggunakan pengontrol validasi Laravel dan filter data untuk ini.

[Total: 1 Berarti: 5]

Ditulis oleh Anton Gildebrand

Anton adalah full stack developer dengan hasrat untuk berbagi tips dan solusi kode dengan koleganya dan komunitas developer. Dengan latar belakang yang kuat dalam teknologi front-end dan back-end, Anton mahir dalam berbagai bahasa dan kerangka kerja pemrograman. Dia adalah anggota aktif forum pengembang online dan secara teratur menyumbangkan ide dan solusi untuk membantu orang lain memecahkan tantangan pemrograman. Di waktu senggangnya, anton senang mengikuti perkembangan tren dan teknologi terbaru di lapangan dan bereksperimen dengan alat dan kerangka kerja baru.

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *

Bagaimana menurut Anda?