in ,

តើធ្វើដូចម្តេចដើម្បីរក្សាទុកតម្លៃនៃប្រអប់ធីកជាច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យនៅក្នុង Laravel?

ខ្ញុំត្រូវរក្សាទុកតម្លៃប្រអប់ធីកក្នុងមូលដ្ឋានទិន្នន័យក្នុង Laravel ។ តើត្រូវធ្វើដូចម្តេច?

តើធ្វើដូចម្តេចដើម្បីរក្សាទុកតម្លៃនៃប្រអប់ធីកជាច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យនៅក្នុង Laravel?
តើធ្វើដូចម្តេចដើម្បីរក្សាទុកតម្លៃនៃប្រអប់ធីកជាច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យនៅក្នុង Laravel?

មានវិធីជាច្រើនដើម្បីរក្សាទុកតម្លៃនៃប្រអប់ធីកច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យនៅក្នុង Laravel ។ នេះគឺជាជម្រើសមួយចំនួន៖

  1. ប្រើវាលប្រភេទ "ប៊ូលីន" ៖ ប្រអប់ធីកនីមួយៗអាចត្រូវបានរក្សាទុកជា "ពិត" ឬ "មិនពិត" នៅក្នុងវាលប្រភេទប៊ូលីនក្នុងមូលដ្ឋានទិន្នន័យរបស់អ្នក។
  2. ប្រើវាលប្រភេទ "អត្ថបទ" ៖ អ្នក​អាច​រក្សាទុក​តម្លៃ​នៃ​ប្រអប់​ធីក​ទាំងអស់​ក្នុង​វាល​ប្រភេទ​អត្ថបទ ដោយ​បំបែក​តម្លៃ​នីមួយៗ​ដោយ​សញ្ញាក្បៀស។ ឧទាហរណ៍ ប្រសិនបើអ្នកប្រើធីកប្រអប់ "ផ្លែឈើ" និង "បន្លែ" អ្នកអាចរក្សាទុកព័ត៌មាននេះជា "ផ្លែឈើ បន្លែ" ក្នុងប្រអប់ប្រភេទអត្ថបទ។
  3. ប្រើតារាងទំនាក់ទំនង ៖ ប្រសិនបើអ្នកមានប្រអប់ធីកជាច្រើនដែលត្រូវបានភ្ជាប់ទៅកំណត់ត្រាដូចគ្នា អ្នកអាចប្រើតារាងទំនាក់ទំនងដើម្បីរក្សាទុកទិន្នន័យនេះ។ ឧទាហរណ៍ ប្រសិនបើអ្នកមានតារាង "ផលិតផល" ដែលមានជួរឈរ "ប្រភេទ" អ្នកអាចបង្កើតតារាង "product_categories" ដែលភ្ជាប់ប្រភេទដែលបានជ្រើសរើសទៅផលិតផលនីមួយៗ។
  4. ប្រើវាលប្រភេទ "តារាង" ៖ ប្រសិនបើអ្នកកំពុងប្រើមូលដ្ឋានទិន្នន័យដែលគាំទ្រអារេ (ដូចជា PostgreSQL) អ្នកអាចរក្សាទុកតម្លៃនៃប្រអប់ធីកច្រើននៅក្នុងវាលប្រភេទអារេមួយ។ វានឹងអនុញ្ញាតឱ្យអ្នករក្សាទុកតម្លៃច្រើននៅក្នុងវាលតែមួយដោយមិនចាំបាច់ប្រើតារាងទំនាក់ទំនង។

រក្សាទុកតម្លៃប្រអប់ធីកច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យដោយប្រើអារេមួយ។

នៅក្នុង Laravel អ្នកអាចរក្សាទុកតម្លៃប្រអប់ធីកច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យដោយប្រើអារេដើម្បីរក្សាទុកតម្លៃក្នុងវាលតែមួយ។ នេះជាឧទាហរណ៍មួយអំពីរបៀបដែលអ្នកអាចធ្វើបាន៖

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

វារក្សាទុកតម្លៃនៃប្រអប់ធីកដែលបានជ្រើសរើសនៅក្នុងវាល "ជម្រើស" ជាអារេដែលបានអ៊ិនកូដ JSON ។ បន្ទាប់មកអ្នកអាចទាញយក និងបង្ហាញតម្លៃដែលបានជ្រើសរើសដោយការឌិកូដអារេ JSON នៅពេលអ្នកទាញយកកំណត់ត្រាពីមូលដ្ឋានទិន្នន័យ។

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

កូដគំរូដើម្បីរក្សាទុកតម្លៃប្រអប់ធីកច្រើននៅក្នុង Laravel

នេះគឺជាកូដគំរូមួយចំនួនសម្រាប់រក្សាទុកតម្លៃនៃប្រអប់ធីកច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យនៅក្នុង Laravel៖

ប្រើវាលប្រភេទ "ប៊ូលីន"

ការបង្កើតជួរឈរប៊ូលីន "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]

និពន្ធដោយ លោក Anton Gildebrand

លោក Anton គឺជាអ្នកអភិវឌ្ឍន៍បណ្តុំពេញមួយរូបដែលចូលចិត្តចែករំលែកគន្លឹះ និងដំណោះស្រាយកូដជាមួយសហការីរបស់គាត់ និងសហគមន៍អ្នកអភិវឌ្ឍន៍។ ជាមួយនឹងផ្ទៃខាងក្រោយដ៏រឹងមាំនៅក្នុងបច្ចេកវិទ្យា front-end និង back-end លោក Anton មានជំនាញក្នុងភាពខុសគ្នានៃភាសាសរសេរកម្មវិធី និងក្របខ័ណ្ឌ។ គាត់គឺជាសមាជិកសកម្មនៃវេទិកាអ្នកអភិវឌ្ឍន៍តាមអ៊ីនធឺណិត ហើយតែងតែរួមចំណែកនូវគំនិត និងដំណោះស្រាយ ដើម្បីជួយអ្នកដទៃដោះស្រាយបញ្ហាប្រឈមនៃកម្មវិធី។ ក្នុងពេលទំនេររបស់គាត់ លោក Anton រីករាយក្នុងការបន្តធ្វើបច្ចុប្បន្នភាពលើនិន្នាការ និងបច្ចេកវិទ្យាចុងក្រោយបំផុតនៅក្នុងវិស័យនេះ ហើយពិសោធន៍ជាមួយឧបករណ៍ និងក្របខ័ណ្ឌថ្មីៗ។

commentaire អ៊ុ Laisser

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ * *

តើ​អ្នក​គិត​អ្វី?

387 ពិន្ទុ
Upvote Downvote