in ,

Cumu almacenà parechji valori Checkbox in una basa di dati in Laravel?

Aghju bisognu di almacenà i valori di checkbox in a basa di dati in Laravel. Cumu fà ?

Cumu almacenà parechji valori Checkbox in una basa di dati in Laravel?
Cumu almacenà parechji valori Checkbox in una basa di dati in Laravel?

Ci hè parechje manere di almacenà i valori di parechje checkboxes in una basa di dati in Laravel. Eccu alcune opzioni:

  1. Aduprate un campu di tipu "booleanu". : ogni checkbox pò esse salvatu cum'è "true" o "false" in un campu di tipu booleanu in a vostra basa di dati.
  2. Aduprà un campu di tipu "testu". : pudete almacenà i valori di tutte e caselle marcate in un campu di testu, sepandu ogni valore cù una virgola. Per esempiu, se l'utilizatore hà verificatu i caselle "frutti" è "verdura", pudete salvà sta infurmazione cum'è "frutti, verdura" in un campu di testu.
  3. Aduprate una tabella di relazione : sè vo avete parechje checkboxes chì sò ligati à u stessu registru, pudete aduprà una tabella di relazione per almacenà sta dati. Per esempiu, sè vo avete una tavola "prodotti" cù una culonna "categories", pudete creà una tavola "product_categories" chì liganu e categurie selezziunate à ogni pruduttu.
  4. Aduprà un campu di tipu "tavula". : Sè vo aduprate una basa di dati chì supporta array (cum'è PostgreSQL), pudete almacenà i valori di parechje checkboxes in un campu di tipu array. Questu permetterà di almacenà parechji valori in un unicu campu senza avè aduprà una tabella di relazione.

Almacenà parechji valori di checkbox in una basa di dati utilizendu un array

In Laravel, pudete almacenà parechji valori di checkbox in una basa di dati usendu un array per almacenà i valori in un unicu campu. Eccu un esempiu di cumu pudete fà:

1. Crea una migrazione per aghjunghje un campu à a vostra tabella di basa di dati per almacenà i valori di checkbox. Per esempiu, se vulete almacenà i valori in un campu chjamatu "opzioni", pudete aduprà a seguente migrazione:

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. In a vostra forma, create checkboxes per ogni opzione chì vulete salvà. Per esempiu :

<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. In a vostra logica di trasfurmazioni di sottumissione di a forma, ricuperate i valori di e caselle di spunta selezziunate è guardate in a basa di dati. Per esempiu :

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

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

Questu guarda i valori di e caselle di spunta selezziunate in u campu "opzioni" cum'è una matrice codificata JSON. Pudete tandu ricuperà è visualizà i valori selezziunati decodificà a matrice JSON quandu recuperate u record da a basa di dati.

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

Codici di mostra per almacenà parechji valori di checkbox in Laravel

Eccu alcuni codici di mostra per almacenà i valori di parechje checkboxes in una basa di dati in Laravel:

Aduprate un campu di tipu "booleanu".

Creazione di a colonna booleana "subscription_newsletter" in a tavola "utilizatori":

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

Registrazione di l'abbonamentu di l'utilizatore à a newsletter quandu invià u furmulariu:

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

Aduprà un campu di tipu "testu".

Creazione di a colonna "options_sélectionées" di tipu di testu in a tavola "survey":

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

Salvà l'opzioni selezziunate da l'utilizatore quandu invià u furmulariu:

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

Aduprate una tabella di relazione

Creazione di a tavula "categories_products" cù e colonne "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();
});

Salvà e categurie selezziunate da l'utilizatore quandu invià u furmulariu:

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

Aduprà un campu di tipu "tavula".

Creazione di a colonna "options_selected" di u tipu di tabella in a tabella "poll" (se utilizate PostgreSQL):

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

Salvà l'opzioni selezziunate da l'utilizatore quandu invià u furmulariu:

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

Hè impurtante à nutà chì, in ogni casu, avete bisognu di assicurà chì i vostri valori di checkbox sò validati bè è puliti prima di esse salvati in a vostra basa di dati. Pudete utilizà i cuntrolli di validazione di Laravel è i filtri di dati per questu.

[Totale: 1 Mean: 5]

scrittu da santu Anton Gildebrand

Anton hè un sviluppatore full stack cun passione per sparta cunsiglii è suluzioni di codice cù i so culleghi è a cumunità di sviluppatori. Cù un solidu background in tecnulugii front-end è back-end, Anton hè prufessore in una varietà di linguaggi è frameworks di prugrammazione. Hè un membru attivu di i fori di sviluppatori in linea è cuntribuisce regularmente idee è soluzioni per aiutà l'altri à risolve e sfide di prugrammazione. In u so tempu liberu, Anton piace à stà infurmatu nantu à l'ultime tendenze è tecnulugii in u campu è sperimentà novi arnesi è frameworks.

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. campi nicissarii sò marcati *

Chì ne pensi?

387 Points
Upvote Downvote