in ,

Како сачувати вредности неколико поља за потврду у бази података у Ларавел-у?

Морам да сачувам вредности поља за потврду у бази података у Ларавел-у. Како то да урадите ?

Како сачувати вредности неколико поља за потврду у бази података у Ларавел-у?
Како сачувати вредности неколико поља за потврду у бази података у Ларавел-у?

Постоји неколико начина за чување вредности вишеструких поља за потврду у бази података у Ларавел-у. Ево неколико опција:

  1. Користите поље типа „боолеан“. : свако поље за потврду може бити сачувано као "тачно" или "нетачно" у пољу логичког типа у вашој бази података.
  2. Користите поље типа „текст“. : можете да сачувате вредности свих означених поља за потврду у пољу за текст, одвајајући сваку вредност зарезом. На пример, ако је корисник означио поља „воће“ и „поврће“, ове информације можете да сачувате као „воће, поврће“ у пољу за текст.
  3. Користите табелу односа : ако имате неколико поља за потврду која су повезана са истим записом, можете користити табелу односа за чување ових података. На пример, ако имате табелу „производи“ са колоном „категорије“, можете да креирате табелу „продуцт_цатегориес“ која повезује изабране категорије са сваким производом.
  4. Користите поље типа „табела“. : Ако користите базу података која подржава низове (као што је ПостгреСКЛ), можете да сачувате вредности више поља за потврду у пољу типа низа. Ово ће вам омогућити да сачувате више вредности у једном пољу без потребе да користите табелу односа.

Чувајте више вредности поља за потврду у бази података користећи низ

У Ларавел-у можете да складиштите више вредности поља за потврду у бази података користећи низ за чување вредности у једном пољу. Ево примера како то можете да урадите:

1. Креирајте миграцију да бисте додали поље у табелу базе података за чување вредности поља за потврду. На пример, ако желите да сачувате вредности у пољу под називом „опције“, можете користити следећу миграцију:

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

Ово чува вредности изабраних поља за потврду у пољу „опције“ као ЈСОН кодирани низ. Затим можете да преузмете и прикажете изабране вредности декодирањем ЈСОН низа када преузмете запис из базе података.

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

Пример кодова за чување више вредности поља за потврду у Ларавел-у

Ево неких примера кодова за чување вредности вишеструких поља за потврду у бази података у Ларавел-у:

Користите поље типа „боолеан“.

Креирање логичке колоне „субсцриптион_невслеттер“ у табели „корисници“:

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

Регистрација пријаве корисника на билтен приликом слања обрасца:

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

Користите поље типа „текст“.

Креирање колоне „оптионс_селецтионеес“ типа текста у табели „анкета“:

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

Користите табелу односа

Креирање табеле "цатегориес_продуцтс" са колонама "ид_продуцт" и "ид_цатегори":

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

Користите поље типа „табела“.

Креирање колоне „оптионс_селецтед“ типа табеле у табели „анкета“ (ако користите ПостгреСКЛ):

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

Важно је напоменути да ћете у сваком случају морати да се уверите да су вредности поља за потврду исправно потврђене и очишћене пре него што буду сачуване у вашој бази података. За ово можете користити Ларавел контролере валидације и филтере података.

[Укупно: 1 Значити: 5]

Написао Антон Гилдебранд

Антон је потпуни програмер са страшћу за дељење савета и решења кода са својим колегама и заједницом програмера. Са солидном позадином у фронт-енд и бацк-енд технологијама, Антон је вешт у разним програмским језицима и оквирима. Он је активан члан онлајн форума за програмере и редовно доприноси идејама и решењима како би помогао другима да реше програмске изазове. У слободно време, Антон ужива да буде у току са најновијим трендовима и технологијама у овој области и експериментише са новим алатима и оквирима.

Оставите коментар

Ваша адреса е-поште неће бити објављена. Обавезна поља су означена *

Шта ви мислите?