in ,

Uwagcina njani amaxabiso amaninzi ebhokisi yokutshekisha kwisiseko sedatha eLaravel?

Ndidinga ukugcina amaxabiso ebhokisi yokukhangela kwisiseko sedatha eLaravel. Kwenziwa njani ?

Uwagcina njani amaxabiso amaninzi ebhokisi yokutshekisha kwisiseko sedatha eLaravel?
Uwagcina njani amaxabiso amaninzi ebhokisi yokutshekisha kwisiseko sedatha eLaravel?

Kukho iindlela ezininzi zokugcina amaxabiso eebhokisi zokukhangela ezininzi kwisiseko sedatha eLaravel. Nazi ezinye iindlela onokukhetha kuzo:

  1. Sebenzisa indawo yohlobo lwe "boolean". : ibhokisi yokukhangela nganye inokugcinwa njenge "yinyani" okanye "bubuxoki" kwindawo yohlobo lwe boolean kuvimba wakho wedatha.
  2. Sebenzisa indawo yohlobo "yombhalo". : ungagcina amaxabiso azo zonke iibhokisi ezikhangelweyo kumhlaba wohlobo lokubhaliweyo, ukwahlula ixabiso ngalinye ngesiphumlisi. Umzekelo, ukuba umsebenzisi ukhangele iibhokisi ze-"fruits" kunye ne "vegetables", ungagcina olu lwazi njenge "fruits,vegetables" kumhlaba wohlobo lombhalo.
  3. Sebenzisa itheyibhile yobudlelwane : Ukuba uneebhokisi zokukhangela ezininzi ezidityaniswe kwirekhodi enye, ungasebenzisa itheyibhile yonxulumano ukugcina le datha. Umzekelo, ukuba unetheyibhile "yemveliso" enekholamu ye "categories", unokwenza itafile ye "product_categories" edibanisa iindidi ezikhethiweyo kwimveliso nganye.
  4. Sebenzisa indawo yodidi lwe “table” : Ukuba usebenzisa isiseko sedatha esixhasa uluhlu (njengePostgreSQL), ungagcina amaxabiso eebhokisi zokukhangela ezininzi kwindawo yohlobo loluhlu. Oku kuya kukuvumela ukuba ugcine amaxabiso amaninzi kwindawo enye ngaphandle kokusebenzisa itafile yobudlelwane.

Gcina amaxabiso ebhokisi yokukhangela amaninzi kwisiseko sedatha usebenzisa uluhlu

KwiLaravel, unokugcina amaxabiso ebhokisi yokukhangela amaninzi kwisiseko sedatha usebenzisa uluhlu lokugcina amaxabiso kwindawo enye. Nanku umzekelo wendlela onokuyenza ngayo:

1. Yenza ufuduko ukongeza intsimi kwitafile yedatha yakho ukugcina amaxabiso ebhokisi yokukhangela. Umzekelo, ukuba ufuna ukugcina amaxabiso kwindawo ebizwa ngokuba yi "options", ungasebenzisa le mfuduko ilandelayo:

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. Kwifomu yakho, yenza iibhokisi zokukhangela kukhetho ngalunye ofuna ukulugcina. Umzekelo :

<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. Kwifomu yakho yokuhambisa ingqiqo, fumana amaxabiso eebhokisi zokukhangela ezikhethiweyo kwaye uzigcine kuvimba weenkcukacha. Umzekelo :

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

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

Oku kugcina amaxabiso eebhokisi zokukhangela ezikhethiweyo kwindawo "yokhetho" njengoluhlu lwekhowudi ye-JSON. Unokufumana kwakhona kwaye ubonise amaxabiso akhethiweyo ngokuchaza uluhlu lwe-JSON xa ubuyisela irekhodi kwisiseko sedatha.

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

Iikhowudi zesampulu zokugcina amaxabiso ebhokisi yokukhangela amaninzi eLaravel

Nazi ezinye iikhowudi zesampulu zokugcina amaxabiso eebhokisi zokukhangela ezininzi kwindawo yedatha eLaravel:

Sebenzisa indawo yohlobo lwe "boolean".

Ukwenziwa kwekholamu ye boolean ethi "subscription_newsletter" kwitheyibhile "yabasebenzisi":

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

Ubhaliso lomrhumo womsebenzisi kwincwadana yeendaba xa ungenisa ifomu:

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

Sebenzisa indawo yohlobo "yombhalo".

Ukwenziwa koluhlu lwe-"options_sélectionées" yohlobo lokubhaliweyo kwitheyibhile ethi "survey":

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

Ukugcina iinketho ezikhethwe ngumsebenzisi xa ungenisa ifomu:

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

Sebenzisa itheyibhile yobudlelwane

Ukwenziwa kwetheyibhile "categories_products" enekholamu "id_product" kunye ne "id_category":

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

Ukugcina iindidi ezikhethwe ngumsebenzisi xa ungenisa 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 indawo yodidi lwe “table”

Ukwenziwa kwekholamu ethi "options_selected" yohlobo lwetafile kwitheyibhile "poll" (ukuba usebenzisa iPostgreSQL):

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

Ukugcina iinketho ezikhethwe ngumsebenzisi xa ungenisa ifomu:

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

Kubalulekile ukuqaphela ukuba, kuyo nayiphi na imeko, kuya kufuneka uqinisekise ukuba amaxabiso akho ebhokisi yokukhangela aqinisekisiwe kwaye acociwe ngaphambi kokuba agcinwe kwisiseko sedatha yakho. Ungasebenzisa izilawuli zokuqinisekisa zikaLaravel kunye nezihluzi zedatha kule nto.

[Iyonke: 1 Ithetha: 5]

Ibhalwe ngu Anton Gildebrand

U-Anton ungumphuhlisi ogcweleyo onomdla wokwabelana ngeengcebiso kunye nezisombululo zekhowudi kunye noogxa bakhe kunye noluntu lwabaphuhlisi. Ngemvelaphi eqinileyo kwitekhnoloji yangaphambili nakwisiphelo sangasemva, uAnton unobuchule kwiilwimi ezahlukeneyo zokucwangcisa kunye nesikhokelo. Ulilungu elisebenzayo leeforamu zophuhlisi kwi-intanethi kwaye rhoqo unikela ngemibono kunye nezisombululo ukunceda abanye ukusombulula imingeni yenkqubo. Ngexesha lakhe lokuphumla, u-Anton uyakonwabela ukuhlala esazi malunga neendlela zamva nje kunye netekhnoloji ebaleni kunye nokuzama izixhobo ezintsha kunye nesikhokelo.

Shiya amazwana

Idilesi ye-imeyile ayizukupapashwa. ebiziwe ibhalwe *

Ingaba ucinga ntoni?

387 iingongoma
Upvote Downvote