in ,

Si të ruani vlera të shumta të kutisë së kontrollit në një bazë të dhënash në Laravel?

Më duhet të ruaj vlerat e kutisë së kontrollit në bazën e të dhënave në Laravel. Si të bëhet ?

Si të ruani vlera të shumta të kutisë së kontrollit në një bazë të dhënash në Laravel?
Si të ruani vlera të shumta të kutisë së kontrollit në një bazë të dhënash në Laravel?

Ka disa mënyra për të ruajtur vlerat e kutive të shumta të kontrollit në një bazë të dhënash në Laravel. Këtu janë disa opsione:

  1. Përdorni një fushë të tipit "boolean". : çdo kuti e kontrollit mund të ruhet si "e vërtetë" ose "e gabuar" në një fushë të tipit boolean në bazën e të dhënave tuaja.
  2. Përdorni një fushë të tipit "tekst". : mund të ruani vlerat e të gjitha kutive të kontrollit në një fushë të llojit të tekstit, duke e ndarë secilën vlerë me një presje. Për shembull, nëse përdoruesi ka kontrolluar kutitë "fruta" dhe "perime", ju mund ta ruani këtë informacion si "fruta, perime" në një fushë të llojit të tekstit.
  3. Përdorni një tabelë marrëdhëniesh : nëse keni disa kuti kontrolli që janë të lidhura me të njëjtin rekord, mund të përdorni një tabelë relacioni për të ruajtur këto të dhëna. Për shembull, nëse keni një tabelë "produkte" me një kolonë "kategori", mund të krijoni një tabelë "produkt_kategori" që lidh kategoritë e zgjedhura me secilin produkt.
  4. Përdorni një fushë të tipit "tabela". : Nëse jeni duke përdorur një bazë të dhënash që mbështet vargje (si PostgreSQL), mund të ruani vlerat e kutive të shumta të kontrollit në një fushë të llojit të grupit. Kjo do t'ju lejojë të ruani vlera të shumta në një fushë të vetme pa pasur nevojë të përdorni një tabelë marrëdhëniesh.

Ruani vlerat e shumta të kutisë së kontrollit në një bazë të dhënash duke përdorur një grup

Në Laravel, mund të ruani vlera të shumta të kutisë së kontrollit në një bazë të dhënash duke përdorur një grup për të ruajtur vlerat në një fushë të vetme. Këtu është një shembull se si mund ta bëni atë:

1. Krijoni një migrim për të shtuar një fushë në tabelën tuaj të bazës së të dhënave për të ruajtur vlerat e kutisë së kontrollit. Për shembull, nëse dëshironi të ruani vlerat në një fushë të quajtur "opsione", mund të përdorni migrimin e mëposhtëm:

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. Në formularin tuaj, krijoni kuti për çdo opsion që dëshironi të ruani. Për shembull:

<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. Në logjikën e përpunimit të paraqitjes së formularit tuaj, merrni vlerat e kutive të zgjedhura dhe ruajini ato në bazën e të dhënave. Për shembull:

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

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

Kjo ruan vlerat e kutive të zgjedhura në fushën "opsionet" si një grup i koduar JSON. Më pas mund të rikuperoni dhe shfaqni vlerat e zgjedhura duke deshifruar grupin JSON kur të merrni rekordin nga baza e të dhënave.

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

Shembuj të kodeve për të ruajtur vlera të shumta të kutisë së kontrollit në Laravel

Këtu janë disa kode mostër për ruajtjen e vlerave të kutive të shumta të kontrollit në një bazë të dhënash në Laravel:

Përdorni një fushë të tipit "boolean".

Krijimi i kolonës boolean "subscription_newsletter" në tabelën "users":

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

Regjistrimi i abonimit të përdoruesit në buletinin kur dorëzoni formularin:

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

Përdorni një fushë të tipit "tekst".

Krijimi i kolonës "options_sélectionées" të llojit të tekstit në tabelën "survey":

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

Ruajtja e opsioneve të zgjedhura nga përdoruesi gjatë dorëzimit të formularit:

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

Përdorni një tabelë marrëdhëniesh

Krijimi i tabelës "categories_products" me kolonat "id_product" dhe "id_category":

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

Ruajtja e kategorive të zgjedhura nga përdoruesi gjatë dorëzimit të formularit:

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

Përdorni një fushë të tipit "tabela".

Krijimi i kolonës "options_selected" të llojit të tabelës në tabelën "sondazh" (nëse përdorni PostgreSQL):

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

Ruajtja e opsioneve të zgjedhura nga përdoruesi gjatë dorëzimit të formularit:

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

Është e rëndësishme të theksohet se, në çdo rast, do t'ju duhet të siguroheni që vlerat e kutisë suaj të kontrollit janë vërtetuar dhe pastruar siç duhet përpara se të ruhen në bazën e të dhënave tuaja. Ju mund të përdorni kontrollorët e vlefshmërisë dhe filtrat e të dhënave të Laravel për këtë.

[Total: 1 Mesatarja: 5]

Shkruar nga Anton Gildebrand

Anton është një zhvillues i plotë i apasionuar pas ndarjes së këshillave dhe zgjidhjeve të kodit me kolegët e tij dhe komunitetin e zhvilluesve. Me një sfond të fortë në teknologjitë e përparme dhe të pasme, Anton është i aftë në një sërë gjuhësh programimi dhe kornizash. Ai është një anëtar aktiv i forumeve të zhvilluesve në internet dhe rregullisht kontribuon me ide dhe zgjidhje për të ndihmuar të tjerët të zgjidhin sfidat e programimit. Në kohën e tij të lirë, Anton kënaqet duke qëndruar i përditësuar mbi tendencat dhe teknologjitë më të fundit në këtë fushë dhe duke eksperimentuar me mjete dhe korniza të reja.

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar *

Çfarë mendoni ju?