in ,

Ungawagcina kanjani amanani ebhokisi lokuhlola ku-database eLaravel?

Ngidinga ukugcina amanani ebhokisi lokuhlola kusizindalwazi eLaravel. Kwenziwa kanjani?

Ungawagcina kanjani amanani ebhokisi lokuhlola ku-database eLaravel?
Ungawagcina kanjani amanani ebhokisi lokuhlola ku-database eLaravel?

Kunezindlela ezimbalwa zokugcina amanani amabhokisi okuhlola amaningi kusizindalwazi eLaravel. Nazi ezinye izinketho:

  1. Sebenzisa inkambu yohlobo lwe-"boolean". : ibhokisi lokuhlola ngalinye lingalondolozwa njengokuthi "iqiniso" noma "amanga" endaweni yohlobo lwe-boolean kusizindalwazi sakho.
  2. Sebenzisa inkambu yohlobo "lombhalo". : ungagcina amanani awo wonke amabhokisi okuhlola akhethiwe endaweni yohlobo lombhalo, uhlukanise inani ngalinye ngokhefana. Isibonelo, uma umsebenzisi ekhethe amabhokisi "ezithelo" kanye "nemifino", ungagcina lolu lwazi "njengezithelo, imifino" kunkambu yohlobo lombhalo.
  3. Sebenzisa ithebula lobudlelwano : uma unamabhokisi okuhlola ambalwa axhunywe kwirekhodi elifanayo, ungasebenzisa ithebula lokuhlobana ukuze ugcine le datha. Isibonelo, uma unethebula "lemikhiqizo" elinekholomu "yezigaba", ungakha ithebula elithi "product_categories" elixhumanisa izigaba ezikhethiwe kumkhiqizo ngamunye.
  4. Sebenzisa inkambu yohlobo "yethebula". : Uma usebenzisa isizindalwazi esisekela amalungu afanayo (njenge-PostgreSQL), ungagcina amanani amabhokisi okuhlola amaningi endaweni yohlobo lwamalungu afanayo. Lokhu kuzokuvumela ukuthi ugcine amanani amaningi endaweni eyodwa ngaphandle kokusebenzisa ithebula lobudlelwano.

Gcina amanani amabhokisi okuhlola amaningi kusizindalwazi usebenzisa uhlu

Ku-Laravel, ungagcina amanani amabhokisi okuhlola amaningi kusizindalwazi ngokusebenzisa uhlu ukuze ugcine amanani endaweni eyodwa. Nasi isibonelo sendlela ongakwenza ngayo:

1. Dala ukuthutha ukuze wengeze inkambu kuthebula lakho lesizindalwazi ukuze ugcine amanani ebhokisi lokuhlola. Isibonelo, uma ufuna ukugcina amanani endaweni ebizwa ngokuthi "izinketho", ungasebenzisa ukuthutha okulandelayo:

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. Ngefomu lakho, dala amabhokisi okuhlola enketho ngayinye ofuna ukuyigcina. Ngokwesibonelo :

<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. Ku-logic yakho yokucubungula ukuthunyelwa kwefomu, thola amanani amabhokisi okuhlola akhethiwe bese uwagcina kusizindalwazi. Ngokwesibonelo :

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

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

Lokhu kugcina amanani amabhokisi okuhlola akhethiwe endaweni ethi "izinketho" njengamalungu afanayo ekhodi ye-JSON. Ungathola futhi ubonise amanani akhethiwe ngokuqopha uhlu lwe-JSON lapho ulanda irekhodi kusizindalwazi.

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

Amakhodi esampula okugcina amanani ebhokisi lokuhlola amaningi e-Laravel

Nawa amanye amakhodi esampula okugcina amanani amabhokisi okuhlola amaningi kusizindalwazi ku-Laravel:

Sebenzisa inkambu yohlobo lwe-"boolean".

Ukwakhiwa kwekholomu ye-boolean ye-“subscription_newsletter” kuthebula elithi “users”:

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

Ukubhaliswa kokubhaliselwe komsebenzisi ku-newsletter lapho kuhanjiswa ifomu:

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

Sebenzisa inkambu yohlobo "lombhalo".

Ukwakhiwa kwekholomu ye-"options_sélectionées" yohlobo lombhalo kuthebula elithi "survey":

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

Ilondoloza izinketho ezikhethwe umsebenzisi lapho kuhanjiswa ifomu:

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

Sebenzisa ithebula lobudlelwano

Ukwakhiwa kwethebula elithi "categories_products" elinamakholomu "id_product" kanye "id_category":

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

Ukulondoloza izigaba ezikhethwe umsebenzisi lapho ehambisa ifomu:

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

Sebenzisa inkambu yohlobo "yethebula".

Ukwakhiwa kwekholomu ethi "options_selected" yohlobo lwamalungu afanayo kuthebula elithi "poll" (uma usebenzisa i-PostgreSQL):

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

Ilondoloza izinketho ezikhethwe umsebenzisi lapho kuhanjiswa ifomu:

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

Kubalulekile ukuqaphela ukuthi, kunoma yikuphi, uzodinga ukuqinisekisa ukuthi amanani ebhokisi lakho likaqhwi aqinisekiswa kahle futhi ahlanzwe ngaphambi kokuba alondolozwe kusizindalwazi sakho. Ungasebenzisa izilawuli zokuqinisekisa ze-Laravel nezihlungi zedatha kulokhu.

[Isamba: 1 Isho: 5]

Ibhalwe ngu Anton Gildebrand

U-Anton ungumthuthukisi wesiteki esigcwele onentshisekelo yokwabelana ngamathiphu ekhodi nezisombululo nozakwabo kanye nomphakathi wonjiniyela. Ngesizinda esiqinile kubuchwepheshe bangaphambili nangemuva, u-Anton unolwazi ngezilimi ezihlukahlukene zokuhlela nezinhlaka. Uyilungu elisebenzayo lezinkundla zonjiniyela eziku-inthanethi futhi unikela njalo ngemibono nezisombululo ukuze asize abanye baxazulule izinselele zokuhlela. Ngesikhathi sakhe esikhululekile, u-Anton ujabulela ukuhlala enolwazi lwakamuva mayelana namathrendi nobuchwepheshe bakamuva kulo mkhakha nokuzama ngamathuluzi amasha nezinhlaka.

Laisser un commentaire

Ikheli lakho le-imeyili ngeke lishicilelwe. Amasimu adingekayo amakwe ngawo *

UCABANGANI?

387 amaphuzu
Upvote I-Downvote