in ,

Kako shraniti več vrednosti potrditvenega polja v bazi podatkov v Laravelu?

Vrednosti potrditvenih polj moram shraniti v bazo podatkov v Laravelu. Kako to storiti ?

Kako shraniti več vrednosti potrditvenega polja v bazi podatkov v Laravelu?
Kako shraniti več vrednosti potrditvenega polja v bazi podatkov v Laravelu?

Obstaja več načinov za shranjevanje vrednosti več potrditvenih polj v bazi podatkov v Laravelu. Tukaj je nekaj možnosti:

  1. Uporabite polje tipa »boolean«. : vsako potrditveno polje je mogoče shraniti kot »true« ali »false« v polje logičnega tipa v vaši bazi podatkov.
  2. Uporabite polje tipa »besedilo«. : vrednosti vseh označenih potrditvenih polj lahko shranite v besedilno polje, pri čemer vsako vrednost ločite z vejico. Na primer, če je uporabnik označil polji »sadje« in »zelenjava«, lahko te informacije shranite kot »sadje, zelenjava« v besedilno polje.
  3. Uporabite tabelo odnosov : če imate več potrditvenih polj, ki so povezana z istim zapisom, lahko uporabite relacijsko tabelo za shranjevanje teh podatkov. Na primer, če imate tabelo »izdelki« s stolpcem »kategorije«, lahko ustvarite tabelo »kategorije_izdelkov«, ki poveže izbrane kategorije z vsakim izdelkom.
  4. Uporabite polje tipa "tabela". : Če uporabljate zbirko podatkov, ki podpira matrike (kot je PostgreSQL), lahko shranite vrednosti več potrditvenih polj v polju vrste matrike. To vam bo omogočilo shranjevanje več vrednosti v eno polje, ne da bi morali uporabiti tabelo odnosov.

Shranite več vrednosti potrditvenih polj v zbirko podatkov z uporabo matrike

V Laravelu lahko shranite več vrednosti potrditvenih polj v bazo podatkov z uporabo matrike za shranjevanje vrednosti v eno polje. Tukaj je primer, kako lahko to storite:

1. Ustvarite selitev, da dodate polje v tabelo zbirke podatkov za shranjevanje vrednosti potrditvenih polj. Na primer, če želite shraniti vrednosti v polje z imenom "možnosti", lahko uporabite naslednjo selitev:

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. V obrazcu ustvarite potrditvena polja za vsako možnost, ki jo želite shraniti. Na primer:

<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 logiki obdelave oddaje obrazca pridobite vrednosti izbranih potrditvenih polj in jih shranite v bazo podatkov. Na primer:

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

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

To shrani vrednosti izbranih potrditvenih polj v polju »možnosti« kot JSON kodirano polje. Nato lahko pridobite in prikažete izbrane vrednosti z dekodiranjem matrike JSON, ko pridobite zapis iz baze podatkov.

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

Vzorčne kode za shranjevanje več vrednosti potrditvenih polj v Laravel

Tukaj je nekaj vzorčnih kod za shranjevanje vrednosti več potrditvenih polj v bazi podatkov v Laravelu:

Uporabite polje tipa »boolean«.

Ustvarjanje logičnega stolpca »subscription_newsletter« v tabeli »uporabniki«:

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

Prijava uporabnika na novice ob oddaji obrazca:

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

Uporabite polje tipa »besedilo«.

Ustvarjanje stolpca »options_sélectionées« vrste besedila v tabeli »survey«:

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

Shranjevanje možnosti, ki jih je uporabnik izbral ob oddaji obrazca:

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

Uporabite tabelo odnosov

Izdelava tabele "categories_products" s stolpcema "id_product" in "id_category":

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

Shranjevanje kategorij, ki jih uporabnik izbere ob oddaji obrazca:

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

Uporabite polje tipa "tabela".

Izdelava stolpca "options_selected" vrste tabele v tabeli "poll" (če uporabljate PostgreSQL):

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

Shranjevanje možnosti, ki jih je uporabnik izbral ob oddaji obrazca:

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

Pomembno je upoštevati, da boste morali v vsakem primeru zagotoviti, da so vaše vrednosti potrditvenih polj pravilno potrjene in očiščene, preden jih shranite v svojo zbirko podatkov. Za to lahko uporabite Laravelove krmilnike za preverjanje veljavnosti in podatkovne filtre.

[Skupaj: 1 Pomeni: 5]

Napisal Anton Gildebrand

Anton je razvijalec s polnim skladom, ki strastno deli nasvete in rešitve kode s svojimi kolegi in skupnostjo razvijalcev. S trdnim znanjem o front-end in back-end tehnologijah Anton obvlada različne programske jezike in ogrodja. Je aktiven član spletnih forumov za razvijalce in redno prispeva ideje in rešitve za pomoč drugim pri reševanju programskih izzivov. V prostem času Anton rad ostaja na tekočem z najnovejšimi trendi in tehnologijami na tem področju ter eksperimentira z novimi orodji in okviri.

Pustite komentar

Vaš e-poštni naslov ne bo objavljen. Obvezna polja so označena *

Kaj menite?

387 Točke
Upvote Downvote