in ,

Чӣ тавр арзишҳои сершумори Checkbox-ро дар пойгоҳи додаҳо дар Laravel нигоҳ доштан мумкин аст?

Ман бояд арзишҳои қуттии чекро дар пойгоҳи додаҳо дар Laravel нигоҳ дорам. Чӣ тавр бояд кард?

Чӣ тавр арзишҳои сершумори Checkbox-ро дар пойгоҳи додаҳо дар Laravel нигоҳ доштан мумкин аст?
Чӣ тавр арзишҳои сершумори Checkbox-ро дар пойгоҳи додаҳо дар Laravel нигоҳ доштан мумкин аст?

Якчанд роҳҳо барои нигоҳ доштани арзишҳои қуттиҳои сершумор дар пойгоҳи додаҳо дар Laravel мавҷуданд. Инҳоянд баъзе вариантҳо:

  1. Майдони навъи "boolean" -ро истифода баред : ҳар як қуттии қайдро метавон ҳамчун "ҳақиқӣ" ё "дурӯғ" дар майдони навъи логикӣ дар пойгоҳи додаи шумо захира кард.
  2. Майдони навъи "матн"-ро истифода баред : шумо метавонед арзишҳои ҳамаи қуттиҳои қайдшударо дар майдони навъи матн нигоҳ дошта, ҳар як арзишро бо вергул ҷудо кунед. Масалан, агар корбар қуттиҳои "мева" ва "сабзавот"-ро тафтиш карда бошад, шумо метавонед ин маълумотро ҳамчун "мева, сабзавот" дар майдони навъи матн захира кунед.
  3. Ҷадвали муносибатҳоро истифода баред : агар шумо якчанд қуттиҳои қайдкуниро дошта бошед, ки ба як сабт пайвастанд, шумо метавонед ҷадвали муносибатҳоро барои нигоҳ доштани ин маълумот истифода баред. Масалан, агар шумо ҷадвали "маҳсулот" бо сутуни "категорияҳо" дошта бошед, шумо метавонед ҷадвали "категорияҳои_маҳсулот" эҷод кунед, ки категорияҳои интихобшударо ба ҳар як маҳсулот мепайвандад.
  4. Майдони навъи "ҷадвал"-ро ​​истифода баред : Агар шумо пойгоҳи додаҳоро истифода баред, ки массивҳоро дастгирӣ мекунад (ба монанди PostgreSQL), шумо метавонед арзишҳои қуттиҳои сершуморро дар майдони навъи массив нигоҳ доред. Ин ба шумо имкон медиҳад, ки арзишҳои сершуморро дар як майдон бидуни истифодаи ҷадвали муносибатҳо нигоҳ доред.

Бо истифода аз массив арзишҳои қуттиҳои чекро дар пойгоҳи додаҳо нигоҳ доред

Дар Laravel, шумо метавонед якчанд қуттиҳои қайдкуниро дар пойгоҳи додаҳо бо истифода аз массив барои нигоҳ доштани арзишҳо дар як майдони ягона нигоҳ доред. Дар ин ҷо як мисоли он аст, ки чӣ тавр шумо ин корро карда метавонед:

1. Барои илова кардани майдон ба ҷадвали пойгоҳи додаи худ барои нигоҳ доштани арзишҳои қуттии қайд, муҳоҷират эҷод кунед. Масалан, агар шумо хоҳед, ки арзишҳоро дар майдоне бо номи "Options" нигоҳ доред, шумо метавонед интиқоли зеринро истифода баред:

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. Дар шакли худ, барои ҳар як интихобе, ки мехоҳед захира кунед, қуттиҳои қайдкуниро эҷод кунед. Барои намуна :

<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. Дар мантиқи коркарди пешниҳоди шакли худ, арзишҳои қуттиҳои интихобшударо дарёфт кунед ва онҳоро дар пойгоҳи додаҳо нигоҳ доред. Барои намуна :

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

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

Ин арзишҳои қуттиҳои интихобшударо дар майдони "параметрҳо" ҳамчун массиви рамзгузоришудаи JSON нигоҳ медорад. Пас шумо метавонед арзишҳои интихобшударо тавассути рамзкушоӣ кардани массиви JSON ҳангоми гирифтани сабт аз пойгоҳи додаҳо дарёфт ва намоиш диҳед.

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

Рамзҳои намунавӣ барои нигоҳ доштани арзишҳои қуттиҳои сершумор дар Laravel

Инҳоянд баъзе рамзҳои намунавӣ барои нигоҳ доштани арзишҳои қуттиҳои сершумор дар пойгоҳи додаҳо дар Laravel:

Майдони навъи "boolean" -ро истифода баред

Эҷоди сутуни логикии "subscription_newsletter" дар ҷадвали "корбарон":

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

Бақайдгирии обунаи корбар ба бюллетен ҳангоми пешниҳоди шакл:

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

Майдони навъи "матн"-ро истифода баред

Эҷоди сутуни "options_sélectionées" навъи матн дар ҷадвали "тадқиқот":

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

Нигоҳ доштани имконоти интихобкардаи корбар ҳангоми пешниҳоди форма:

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

Ҷадвали муносибатҳоро истифода баред

Сохтани ҷадвали "categories_products" бо сутунҳои "id_product" ва "id_category":

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

Захираи категорияҳои интихобкардаи корбар ҳангоми пешниҳоди форма:

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

Майдони навъи "ҷадвал"-ро ​​истифода баред

Эҷоди сутуни "options_selected" навъи ҷадвал дар ҷадвали "пурсиш" (агар шумо PostgreSQL-ро истифода баред):

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

Нигоҳ доштани имконоти интихобкардаи корбар ҳангоми пешниҳоди форма:

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

Қайд кардан муҳим аст, ки дар ҳар сурат, шумо бояд боварӣ ҳосил кунед, ки арзишҳои қуттии қайдкунии шумо пеш аз захира кардан дар пойгоҳи додаи шумо дуруст тасдиқ ва тоза карда шудаанд. Барои ин шумо метавонед контроллерҳои тасдиқи Laravel ва филтрҳои маълумотро истифода баред.

[Ҷамъ: 1 Маънои: 5]

Муаллиф Антон Гилдебранд

Антон як таҳиягари пурраи стек аст, ки дар мубодилаи маслиҳатҳо ва ҳалли кодҳо бо ҳамкасбони худ ва ҷомеаи таҳиягарон дилчасп аст. Бо заминаи мустаҳкам дар технологияҳои пешрафта ва паси охир, Антон дар забонҳои гуногуни барномасозӣ ва чаҳорчӯба малака дорад. Вай узви фаъоли форумҳои таҳиягарони онлайн аст ва мунтазам ғояҳо ва ҳалли худро барои кӯмак ба дигарон дар ҳалли мушкилоти барномасозӣ саҳм мегузорад. Дар вақти холии худ, Антон аз навтарин тамоюлҳо ва технологияҳои ин соҳа огоҳ буданро дӯст медорад ва бо асбобҳо ва чаҳорчӯбаҳои нав таҷриба мекунад.

Эзоҳ диҳед

Суроғаи почтаи электронии шумо нашр карда намешавад. Майдонҳои талаб карда мешавад, ишора *

Ту чӣ фикр мекунӣ?

387 Нуқтаҳои
Бештар Дурнамо