Waxaa jira dhowr siyaabood oo lagu kaydiyo qiyamka sanduuqyada hubinta ee kaydka xogta ee Laravel. Waa kuwan doorarka qaar:
- Isticmaal goob nooca "boolean". : sanduuq kasta waxa loo kaydin karaa sida "run" ama "been" oo ku jira goobta nooca boolean ee kaydka xogtaada.
- Isticmaal goob nooca "qoraalka". : waxaad ku kaydin kartaa qiyamka dhammaan sanduuqyada hubinta ee goobta nooca qoraalka ah, adigoo u kala saaraya qiime kasta iyo comma. Tusaale ahaan, haddii isticmaaluhu uu hubiyay sanduuqyada "miraha" iyo "khudradda", waxaad u kaydin kartaa macluumaadkan sida "miro, khudaar" goob qoraal ah.
- Isticmaal miiska xiriirka : Haddii aad haysato dhowr sanduuq oo hubin ah oo ku xiran isla rikoor, waxaad isticmaali kartaa miiska xiriirka si aad u kaydiso xogtan. Tusaale ahaan, haddii aad haysatid miis "products" oo leh tiir "categories", waxaad samayn kartaa miis "product_categories" oo isku xidha qaybaha la doortay iyo badeecad kasta.
- Isticmaal goob nooca "miiska". : Haddii aad isticmaalayso xog-ururin taageerta arrays (sida PostgreSQL), waxaad ku kaydin kartaa qiyamka sanduuqyada hubinta badan ee goobta nooca array. Tani waxay kuu ogolaaneysaa inaad ku kaydiso qiyamka badan hal goob adigoon isticmaalin miiska xiriirka.
Tusmada
Ku kaydi qiyamka sanduuqa hubinta ee kaydka xogta adiga oo isticmaalaya array
Gudaha Laravel, waxaad ku kaydin kartaa qiyamka sanduuqa jeegeynta ee kaydinta xogta adiga oo isticmaalaya array si aad u kaydiso qiyamka hal goob. Waa kan tusaale sida aad u samayn karto:
1. Samee guuritaan si aad ugu darto garoon miiskaaga xog ururinta si aad u kaydiso qiimayaasha sanduuqa. Tusaale ahaan, haddii aad rabto inaad ku kaydiso qiyamka goobta loo yaqaan "options", waxaad isticmaali kartaa socdaalka soo socda:
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. Foomkaga, u samee sanduuqyada hubinta ikhtiyaar kasta oo aad rabto inaad kaydiso. Tusaale ahaan :
<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. Foomkaaga gudbinta macquulka ah, soo qaado qiyamka sanduuqyada jeeg-bixinta ee la doortay oo ku kaydi kaydka xogta. Tusaale ahaan :
$options = $request->input('options');
$model = new Model();
$model->options = json_encode($options);
$model->save();
Tani waxay ku kaydinaysaa qiyamka sanduuqyada hubinta ee la doortay ee goobta "ikhtiraacida" sidii JSON sumaysan. Waxaad markaas dib u soo ceshan kartaa oo aad soo bandhigi kartaa qiyamka la doortay adiga oo dejinaya qaabka JSON marka aad ka soo ceshato diiwaanka kaydka
$model = Model::find($id);
$options = json_decode($model->options);
Tusaalaha koodka lagu kaydiyo qiyamka sanduuqa jeeg-garaynta ee Laravel
Waa kuwan qaar ka mid ah koodka muunada ee lagu kaydinayo qiyamka sanduuqyada hubinta ee badan ee kaydka Laravel:
Isticmaal goob nooca "boolean".
Abuuritaanka "subscription_newsletter" tiirka boolean ee shaxda "users":
Schema::table('utilisateurs', function (Blueprint $table) {
$table->boolean('abonnement_newsletter')->default(0);
});
Diiwaangelinta ku-qoritaanka isticmaalaha warsidaha marka aad soo gudbinayso foomka:
$utilisateur = new Utilisateur;
$utilisateur->abonnement_newsletter = $request->input('abonnement_newsletter');
$utilisateur->save();
Isticmaal goob nooca "qoraalka".
Abuuritaanka tiirka "options_sélectionées" ee nooca qoraalka ee shaxda " sahanka ":
Schema::table('sondage', function (Blueprint $table) {
$table->text('options_sélectionnées');
});
Kaydinta xulashooyinka uu xushay adeegsaduhu marka aad gudbinayso foomka:
$sondage = new Sondage;
$sondage->options_sélectionnées = implode(',', $request->input('options'));
$sondage->save();
Isticmaal miiska xiriirka
Abuuritaanka shaxda "categories_products" oo leh tiirarka "id_product" iyo "id_category":
Schema::create('catégories_produits', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('id_produit');
$table->integer('id_catégorie');
$table->timestamps();
});
Kaydinta qaybaha uu doortay adeegsaduhu marka uu soo gudbinayo foomka:
$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();
}
Isticmaal goob nooca "miiska".
Abuuritaanka tiirka "options_selected" ee nooca miiska ee shaxda "poll" (haddii aad isticmaasho PostgreSQL):
Schema::table('sondage', function (Blueprint $table) {
$table->jsonb('options_sélectionnées');
});
Kaydinta xulashooyinka uu xushay adeegsaduhu marka aad gudbinayso foomka:
$sondage = new Sondage;
$sondage->options_sélectionnées = $request->input('options');
$sondage->save();
Waxaa muhiim ah in la ogaado, xaalad kasta, waxaad u baahan doontaa inaad hubiso in qiyamka sanduuqaaga si sax ah loo ansaxiyay oo la nadiifiyay ka hor inta aan lagu kaydin xogtaada. Waxaad u isticmaali kartaa kantaroolayaasha ansaxinta Laravel iyo filtarrada xogta tan.