Akwai hanyoyi da yawa don adana ƙimar akwatunan rajistan shiga da yawa a cikin bayanan bayanai a Laravel. Ga wasu zaɓuɓɓuka:
- Yi amfani da filin nau'in "boolean". : kowace akwati za a iya ajiyewa a matsayin "gaskiya" ko "ƙarya" a cikin nau'in nau'in boolean a cikin bayananku.
- Yi amfani da filin nau'in "rubutu". : zaku iya adana kimar duk akwatunan rajistan shiga cikin filin nau'in rubutu, kuna raba kowace ƙima tare da waƙafi. Misali, idan mai amfani ya duba akwatunan "'ya'yan itatuwa" da "kayan lambu", zaku iya ajiye wannan bayanin azaman "'ya'yan itatuwa, kayan lambu" a cikin filin nau'in rubutu.
- Yi amfani da teburin dangantaka : idan kuna da akwatunan rajista da yawa waɗanda ke da alaƙa da rikodin iri ɗaya, zaku iya amfani da tebur mai alaƙa don adana wannan bayanan. Misali, idan kuna da tebur "samfuran" mai ginshiƙin "categories", zaku iya ƙirƙirar tebur "samfurin_categories" wanda ke haɗa nau'ikan da aka zaɓa zuwa kowane samfuri.
- Yi amfani da filin nau'in "tebur". : Idan kuna amfani da bayanan da ke goyan bayan tsararru (kamar PostgreSQL), zaku iya adana ƙimar akwatunan rajistan yawa a cikin nau'in nau'in tsararru. Wannan zai ba ku damar adana ƙima mai yawa a cikin fage guda ba tare da yin amfani da teburin dangantaka ba.
Table na abubuwan ciki
Ajiye ƙimar akwatuna da yawa a cikin ma'ajin bayanai ta amfani da tsararru
A cikin Laravel, zaku iya adana ƙimar akwatuna da yawa a cikin ma'ajin bayanai ta amfani da tsararru don adana ƙimar a cikin fage guda. Ga misalin yadda zaku iya yin shi:
1. Ƙirƙiri ƙaura don ƙara filin zuwa teburin bayananku don adana ƙimar akwati. Misali, idan kuna son adana dabi'u a cikin filin da ake kira "zaɓuɓɓuka", zaku iya amfani da ƙaura mai zuwa:
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. A cikin fom ɗin ku, ƙirƙirar akwatunan rajista don kowane zaɓi da kuke son adanawa. Misali :
<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. A cikin dabarar aiwatar da ƙaddamar da fom ɗin ku, dawo da ƙimar akwatunan rajistan da aka zaɓa kuma adana su a cikin bayanan. Misali :
$options = $request->input('options');
$model = new Model();
$model->options = json_encode($options);
$model->save();
Wannan yana adana ƙimar akwatunan rajistan da aka zaɓa a cikin filin "zaɓi" azaman tsararrun tsararrun JSON. Hakanan zaka iya dawo da nuna ƙimar da aka zaɓa ta hanyar yanke tsarin JSON lokacin da kake dawo da rikodin daga bayanan.
$model = Model::find($id);
$options = json_decode($model->options);
Lambobin samfura don adana ƙimar akwatuna da yawa a cikin Laravel
Anan akwai wasu samfuran samfura don adana ƙimar akwatuna masu yawa a cikin bayanan bayanai a Laravel:
Yi amfani da filin nau'in "boolean".
Ƙirƙirar "subscription_newsletter" boolean ginshiƙi a cikin "masu amfani" tebur:
Schema::table('utilisateurs', function (Blueprint $table) {
$table->boolean('abonnement_newsletter')->default(0);
});
Rajista na biyan kuɗin mai amfani zuwa wasiƙar labarai lokacin ƙaddamar da fom:
$utilisateur = new Utilisateur;
$utilisateur->abonnement_newsletter = $request->input('abonnement_newsletter');
$utilisateur->save();
Yi amfani da filin nau'in "rubutu".
Ƙirƙirar ginshiƙin "options_sélectionées" na nau'in rubutu a cikin "bincike" tebur:
Schema::table('sondage', function (Blueprint $table) {
$table->text('options_sélectionnées');
});
Ajiye zaɓuɓɓukan da mai amfani ya zaɓa lokacin ƙaddamar da fom:
$sondage = new Sondage;
$sondage->options_sélectionnées = implode(',', $request->input('options'));
$sondage->save();
Yi amfani da teburin dangantaka
Ƙirƙirar tebur "categories_products" tare da ginshiƙan "id_product" da "id_category":
Schema::create('catégories_produits', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('id_produit');
$table->integer('id_catégorie');
$table->timestamps();
});
Ajiye nau'ikan da mai amfani ya zaɓa lokacin ƙaddamar da fom:
$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();
}
Yi amfani da filin nau'in "tebur".
Ƙirƙirar ginshiƙin "zaɓi_selected" na nau'in tebur a cikin "zaɓe" (idan kuna amfani da PostgreSQL):
Schema::table('sondage', function (Blueprint $table) {
$table->jsonb('options_sélectionnées');
});
Ajiye zaɓuɓɓukan da mai amfani ya zaɓa lokacin ƙaddamar da fom:
$sondage = new Sondage;
$sondage->options_sélectionnées = $request->input('options');
$sondage->save();
Yana da mahimmanci a lura cewa, a kowane hali, kuna buƙatar tabbatar da cewa an inganta ƙimar akwatunan rajistan ku da kyau kuma an tsaftace su kafin a adana ku zuwa bayananku. Kuna iya amfani da masu sarrafa ingancin Laravel da masu tace bayanai don wannan.