Pali njira zingapo zosungira zomwe zili m'mabokosi angapo mu database ku Laravel. Nazi zina zomwe mungachite:
- Gwiritsani ntchito gawo la "boolean". : bokosi lililonse likhoza kusungidwa ngati "zoona" kapena "zabodza" m'gawo la boolean mu database yanu.
- Gwiritsani ntchito mtundu wa "text". : mutha kusunga zikhalidwe zamabokosi onse osankhidwa mugawo lamtundu wa mawu, kulekanitsa mtengo uliwonse ndi koma. Mwachitsanzo, ngati wogwiritsa ntchito adayang'ana mabokosi a "zipatso" ndi "masamba", mutha kusunga izi ngati "zipatso, masamba" m'munda wamtundu walemba.
- Gwiritsani ntchito tebulo la maubwenzi : ngati muli ndi mabokosi angapo omwe amalumikizidwa ku mbiri yomweyo, mutha kugwiritsa ntchito tebulo lolumikizana kuti musunge izi. Mwachitsanzo, ngati muli ndi tebulo la "products" lomwe lili ndi gawo la "categories", mutha kupanga tebulo la "product_categories" lomwe limalumikiza magulu osankhidwa ku chinthu chilichonse.
- Gwiritsani ntchito gawo la "tebulo". : Ngati mukugwiritsa ntchito nkhokwe yomwe imathandizira masanjidwe (monga PostgreSQL), mutha kusunga zikhalidwe zamabokosi angapo pagawo lamitundu yosiyanasiyana. Izi zikuthandizani kuti musunge zinthu zingapo pamalo amodzi osagwiritsa ntchito tebulo laubwenzi.
Zamkatimu
Sungani ma checkbox angapo mu database pogwiritsa ntchito mndandanda
Ku Laravel, mutha kusunga macheke angapo pankhokwe pogwiritsa ntchito mndandanda kuti musunge zomwe zili mugawo limodzi. Nachi chitsanzo cha momwe mungachitire:
1. Pangani kusamuka kuti muwonjezere gawo ku tebulo lanu lankhokwe kuti musunge cheke. Mwachitsanzo, ngati mukufuna kusunga zinthu zomwe zili mugawo lotchedwa "zosankha", mutha kugwiritsa ntchito kusamukaku:
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. Mu mawonekedwe anu, pangani cheke mabokosi pa chilichonse chimene mukufuna kusunga. Mwachitsanzo :
<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. M'mawu anu opangira mawonekedwe, pezani zikhalidwe zamabokosi osankhidwa ndikusunga munkhokwe. Mwachitsanzo :
$options = $request->input('options');
$model = new Model();
$model->options = json_encode($options);
$model->save();
Izi zimasunga zikhalidwe zamabokosi osankhidwa mugawo la "zosankha" ngati gulu la JSON. Mutha kupezanso ndikuwonetsa zomwe mwasankha polemba mndandanda wa JSON mukamapeza mbiriyo kuchokera pankhokwe.
$model = Model::find($id);
$options = json_decode($model->options);
Zitsanzo za zitsanzo zosungiramo ma checkbox angapo ku Laravel
Nawa ma code angapo osungiramo zikhalidwe zamabokosi angapo patsamba la Laravel:
Gwiritsani ntchito gawo la "boolean".
Kupanga gawo la boolean la "subscription_newsletter" patebulo la "users":
Schema::table('utilisateurs', function (Blueprint $table) {
$table->boolean('abonnement_newsletter')->default(0);
});
Kulembetsa kulembetsa kwa wogwiritsa ntchito kumakalata akamatumiza fomu:
$utilisateur = new Utilisateur;
$utilisateur->abonnement_newsletter = $request->input('abonnement_newsletter');
$utilisateur->save();
Gwiritsani ntchito mtundu wa "text".
Kupanga gawo la "options_sélectionées" lamtundu wa mawu patebulo la "survey":
Schema::table('sondage', function (Blueprint $table) {
$table->text('options_sélectionnées');
});
Kusunga zosankha zosankhidwa ndi wogwiritsa ntchito potumiza fomu:
$sondage = new Sondage;
$sondage->options_sélectionnées = implode(',', $request->input('options'));
$sondage->save();
Gwiritsani ntchito tebulo la maubwenzi
Kupanga tebulo "categories_products" yokhala ndi "id_product" ndi "id_category":
Schema::create('catégories_produits', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('id_produit');
$table->integer('id_catégorie');
$table->timestamps();
});
Kusunga magulu osankhidwa ndi wogwiritsa ntchito potumiza fomu:
$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();
}
Gwiritsani ntchito gawo la "tebulo".
Kupanga gawo la "options_selected" lamtundu wa tebulo patebulo "poll" (ngati mugwiritsa ntchito PostgreSQL):
Schema::table('sondage', function (Blueprint $table) {
$table->jsonb('options_sélectionnées');
});
Kusunga zosankha zosankhidwa ndi wogwiritsa ntchito potumiza fomu:
$sondage = new Sondage;
$sondage->options_sélectionnées = $request->input('options');
$sondage->save();
Ndikofunikira kudziwa kuti, mulimonse, muyenera kuwonetsetsa kuti macheke anu amatsimikiziridwa ndikuyeretsedwa musanasungidwe ku database yanu. Mutha kugwiritsa ntchito zowongolera zovomerezeka za Laravel ndi zosefera za data pa izi.