in ,

Yuav ua li cas khaws ntau qhov Checkbox qhov tseem ceeb hauv ib lub database hauv Laravel?

Kuv yuav tsum khaws cov checkbox qhov tseem ceeb hauv database hauv Laravel. Yuav ua li cas?

Yuav ua li cas khaws ntau qhov Checkbox qhov tseem ceeb hauv ib lub database hauv Laravel?
Yuav ua li cas khaws ntau qhov Checkbox qhov tseem ceeb hauv ib lub database hauv Laravel?

Muaj ntau txoj hauv kev los khaws cov txiaj ntsig ntawm ntau lub checkboxes hauv cov ntaub ntawv hauv Laravel. Nov yog qee qhov kev xaiv:

  1. Siv qhov "boolean" hom teb : txhua lub checkbox tuaj yeem khaws tau ua "tseeb" lossis "false" hauv hom boolean hauv koj cov ntaub ntawv.
  2. Siv ib daim teb "text" hom : koj tuaj yeem khaws cov txiaj ntsig ntawm txhua qhov checkboxes hauv cov ntawv nyeem, sib cais txhua tus nqi nrog tus lej cim. Piv txwv li, yog tias tus neeg siv tau tshuaj xyuas "txiv hmab txiv ntoo" thiab "zaub" lub thawv, koj tuaj yeem khaws cov ntaub ntawv no ua "txiv hmab txiv ntoo, zaub" hauv cov ntawv nyeem.
  3. Siv lub rooj sib tham : Yog tias koj muaj ob peb lub checkboxes uas txuas nrog tib cov ntaub ntawv, koj tuaj yeem siv lub rooj sib tham los khaws cov ntaub ntawv no. Piv txwv li, yog tias koj muaj "cov khoom" cov lus nrog "qib" kab, koj tuaj yeem tsim ib lub rooj "product_categories" uas txuas cov pawg xaiv rau txhua yam khoom.
  4. Siv lub "table" hom teb : Yog tias koj siv cov ntaub ntawv uas txhawb nqa arrays (xws li PostgreSQL), koj tuaj yeem khaws cov txiaj ntsig ntawm ntau lub checkboxes hauv hom array. Qhov no yuav tso cai rau koj khaws ntau yam txiaj ntsig hauv ib qho chaw tsis tas yuav siv lub rooj sib tham.

Khaws ntau qhov checkbox qhov tseem ceeb hauv cov ntaub ntawv siv ib qho array

Hauv Laravel, koj tuaj yeem khaws ntau qhov checkbox qhov tseem ceeb hauv ib lub database los ntawm kev siv ib qho array los khaws cov nqi hauv ib qhov chaw. Nov yog ib qho piv txwv uas koj tuaj yeem ua tau:

1. Tsim ib qho kev tsiv teb tsaws los ntxiv ib daim teb rau koj lub rooj ntaub ntawv khaws cia cov nqi checkbox. Piv txwv li, yog tias koj xav khaws cov txiaj ntsig hauv thaj chaw hu ua "kev xaiv", koj tuaj yeem siv cov kev tsiv teb tsaws hauv qab no:

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. Nyob rau hauv koj daim ntawv, tsim checkboxes rau txhua qhov kev xaiv koj xav txuag. Piv txwv li:

<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. Nyob rau hauv koj daim ntawv xa mus ua logic, retrieve qhov tseem ceeb ntawm cov xaiv checkboxes thiab khaws cia rau hauv lub database. Piv txwv li:

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

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

Qhov no khaws cov txiaj ntsig ntawm cov thawv ntawv xaiv hauv "kev xaiv" teb raws li JSON encoded array. Tom qab ntawd koj tuaj yeem khaws thiab tso saib cov txiaj ntsig tau xaiv los ntawm kev txiav txim siab JSON array thaum koj khaws cov ntaub ntawv los ntawm cov ntaub ntawv.

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

Cov lej ua piv txwv los khaws ntau qhov checkbox qhov tseem ceeb hauv Laravel

Nov yog qee cov qauv coj los khaws cia qhov tseem ceeb ntawm ntau lub checkboxes hauv database hauv Laravel:

Siv qhov "boolean" hom teb

Tsim "subscription_newsletter" boolean kem hauv "cov neeg siv" cov lus:

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

Kev tso npe ntawm tus neeg siv kev tso npe rau hauv tsab ntawv xov xwm thaum xa daim foos:

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

Siv ib daim teb "text" hom

Tsim cov "options_sélectionées" kem ntawm cov ntawv nyeem hauv cov lus "survey":

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

Txuag cov kev xaiv xaiv los ntawm tus neeg siv thaum xa daim ntawv:

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

Siv lub rooj sib tham

Tsim cov lus "categories_products" nrog cov kab "id_product" thiab "id_category":

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

Txuag pawg xaiv los ntawm tus neeg siv thaum xa daim ntawv:

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

Siv lub "table" hom teb

Tsim cov kab "options_selected" ntawm cov lus hauv lub rooj "tsim" (yog tias koj siv PostgreSQL):

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

Txuag cov kev xaiv xaiv los ntawm tus neeg siv thaum xa daim ntawv:

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

Nws yog ib qho tseem ceeb uas yuav tsum nco ntsoov tias, nyob rau hauv txhua rooj plaub, koj yuav tsum xyuas kom meej tias koj checkbox qhov tseem ceeb yog validated thiab huv si ua ntej yuav raug cawm rau koj database. Koj tuaj yeem siv Laravel's validation controllers thiab cov ntaub ntawv lim rau qhov no.

[Tag nrho: 1 Txhais: 5]

sau los ntawm Anton Gildebrand

Anton yog tag nrho pawg tsim tawm mob siab rau kev sib qhia cov lus qhia thiab kev daws teeb meem nrog nws cov npoj yaig thiab cov neeg tsim tawm hauv zej zog. Nrog rau keeb kwm yav dhau los ntawm cov thev naus laus zis hauv pem hauv ntej-kawg thiab rov qab-kawg, Anton tau paub ntau yam lus programming thiab lub moj khaum. Nws yog ib tug tswv cuab ntawm cov neeg tsim tawm hauv online thiab niaj hnub pab tswv yim thiab kev daws teeb meem los pab lwm tus daws cov teeb meem hauv kev ua haujlwm. Nyob rau hauv nws lub sij hawm spare, Anton nyiam nyob mus txog rau cov tiam tshiab thiab technologies nyob rau hauv lub teb thiab sim nrog tshiab cov cuab yeej thiab lub moj khaum.

Laisser un commentaire

Koj email chaw nyob yuav tsis tsum luam tawm. Yuav tsum tau teb cov cim *

Yuav ua li cas koj xav hais tias?

387 Cov ntsiab lus
Upvote Downvote