in ,

Ako uložiť hodnoty niekoľkých začiarkavacích políčok do databázy v Laravel?

Potrebujem uložiť hodnoty začiarkavacích políčok v databáze v Laravel. Ako na to ?

Ako uložiť hodnoty niekoľkých začiarkavacích políčok do databázy v Laravel?
Ako uložiť hodnoty niekoľkých začiarkavacích políčok do databázy v Laravel?

Existuje niekoľko spôsobov, ako uložiť hodnoty viacerých začiarkavacích políčok v databáze v Laravel. Tu je niekoľko možností:

  1. Použite pole typu „boolean“. : každé začiarkavacie políčko možno uložiť ako „pravda“ alebo „nepravda“ do poľa typu boolean vo vašej databáze.
  2. Použite pole typu „text“. : hodnoty všetkých zaškrtnutých políčok môžete uložiť do textového poľa, pričom každú hodnotu oddelíte čiarkou. Napríklad, ak používateľ zaškrtol políčka „ovocie“ a „zelenina“, môžete tieto informácie uložiť ako „ovocie, zelenina“ do textového poľa.
  3. Použite tabuľku vzťahov : ak máte niekoľko začiarkavacích políčok, ktoré sú prepojené s rovnakým záznamom, na uloženie týchto údajov môžete použiť tabuľku vzťahov. Ak máte napríklad tabuľku „produkty“ so stĺpcom „kategórie“, môžete vytvoriť tabuľku „kategórie_produktov“, ktorá prepojí vybraté kategórie s každým produktom.
  4. Použite pole typu „tabuľka“. : Ak používate databázu, ktorá podporuje polia (ako PostgreSQL), môžete uložiť hodnoty viacerých začiarkavacích políčok do poľa typu poľa. To vám umožní uložiť viacero hodnôt do jedného poľa bez toho, aby ste museli použiť tabuľku vzťahov.

Uložte viacero hodnôt začiarkavacích políčok v databáze pomocou poľa

V Laravel môžete uložiť viacero hodnôt začiarkavacích políčok v databáze pomocou poľa na uloženie hodnôt do jedného poľa. Tu je príklad, ako to môžete urobiť:

1. Vytvorte migráciu na pridanie poľa do tabuľky databázy na uloženie hodnôt začiarkavacích políčok. Napríklad, ak chcete uložiť hodnoty do poľa s názvom „možnosti“, môžete použiť nasledujúcu migráciu:

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. Vo formulári vytvorte začiarkavacie políčka pre každú možnosť, ktorú chcete uložiť. Napríklad :

<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. V logike spracovania odoslania formulára získajte hodnoty vybratých začiarkavacích políčok a uložte ich do databázy. Napríklad :

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

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

Tým sa uložia hodnoty vybratých začiarkavacích políčok v poli „možnosti“ ako pole kódované JSON. Potom môžete načítať a zobraziť vybrané hodnoty dekódovaním poľa JSON pri načítaní záznamu z databázy.

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

Vzorové kódy na uloženie viacerých hodnôt začiarkavacích políčok v Laravel

Tu je niekoľko vzorových kódov na ukladanie hodnôt viacerých začiarkavacích políčok v databáze v Laravel:

Použite pole typu „boolean“.

Vytvorenie boolovského stĺpca „subscription_newsletter“ v tabuľke „users“:

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

Registrácia prihlásenia užívateľa na odber noviniek pri odoslaní formulára:

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

Použite pole typu „text“.

Vytvorenie stĺpca „options_sélectionées“ typu textu v tabuľke „prieskum“:

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

Uloženie možností vybratých používateľom pri odosielaní formulára:

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

Použite tabuľku vzťahov

Vytvorenie tabuľky „categories_products“ so stĺpcami „id_product“ a „id_category“:

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

Uloženie kategórií vybraných používateľom pri odosielaní formulára:

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

Použite pole typu „tabuľka“.

Vytvorenie stĺpca "options_selected" typu tabuľky v tabuľke "poll" (ak používate PostgreSQL):

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

Uloženie možností vybratých používateľom pri odosielaní formulára:

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

Je dôležité poznamenať, že v každom prípade sa budete musieť uistiť, že hodnoty začiarkavacieho políčka sú pred uložením do databázy správne overené a vyčistené. Na to môžete použiť overovacie ovládače Laravel a dátové filtre.

[Celkom: 1 priemer: 5]

Napísané Anton Gildebrand

Anton je úplný vývojár, ktorý je nadšený zdieľaním tipov a riešení pre kód so svojimi kolegami a komunitou vývojárov. So solídnym zázemím v oblasti front-end a back-end technológií je Anton zbehlý v rôznych programovacích jazykoch a rámcoch. Je aktívnym členom online vývojárskych fór a pravidelne prispieva nápadmi a riešeniami, ktoré pomáhajú ostatným riešiť programátorské výzvy. Vo svojom voľnom čase Anton rád sleduje najnovšie trendy a technológie v tejto oblasti a experimentuje s novými nástrojmi a rámcami.

zanechať komentár

Vaša emailová adresa nebude zverejnená. Povinné položky sú označené *

Čo si myslíte?