🧱 සරලව Laravel: පාඩම් මාලාව 7 - Models සහ Migrations

Laravel project එකකදී දත්ත (data) ගබඩා කරන්නේ database එකකය. මෙම පාඩමේදී, අපි database එකේ දත්ත තැන්පත් කිරීමට අවශ්‍ය ව්‍යුහය (structure) සාදා ගන්නා ආකාරය ඉගෙන ගනිමු.

🤔 මොනවද මේ Models සහ Migrations?

සරලවම කිවහොත්:

  1. Migration (සැලැස්ම): මේක හරියට database එකේ හදන වගුවක (table) "ඉංජිනේරු සැලැස්ම" වගෙයි. අපේ වගුවට අවශ්‍ය තීරු (columns) මොනවාද කියා අපි මේ ගොනුවේ ලියනවා.
  2. Model (කළමනාකරු): මේක හරියට අර සැලැස්මට අනුව හැදූ වගුවේ "කළමනාකරු" (Manager) වගෙයි. Database එකට දත්ත දැමීම, දත්ත ලබා ගැනීම වැනි සියලුම වැඩ අපි කරන්නේ මේ Model එක හරහායි.

අපේ Greeting App එකට, ඇතුළත් කරන නම් (names) ගබඩා කර තබා ගැනීමට greetings නමින් වගුවක් අවශ්‍යයි. අපි දැන් ඒ සඳහා Model සහ Migration එක හදමු.

පියවර 1: Model සහ Migration ගොනු සෑදීම

Terminal එක විවෘත කර ඔබගේ Laravel project folder එකට ගොස් පහත command එක ක්‍රියාත්මක කරන්න.

php artisan make:model Greeting -m

මෙමගින් අලුතින් ගොනු දෙකක් හැදෙනවා:

  • app/Models/Greeting.php (කළමනාකරු)
  • database/migrations/TIMESTAMP_create_greetings_table.php (සැලැස්ම)

පියවර 2: Migration සැලැස්ම සකස් කිරීම

දැන් database/migrations/ ෆෝල්ඩරයේ අලුතින් සෑදුනු ..._create_greetings_table.php ගොනුව විවෘත කරන්න. එහි ඇති up() function එක, පහත ආකාරයට සකස් කරන්න.

// database/migrations/..._create_greetings_table.php

public function up(): void
{
    Schema::create('greetings', function (Blueprint $table) {
        $table->id();                // 1, 2, 3... ලෙස ස්වයංක්‍රීයව වැඩිවෙන ID එකක්
        $table->string('name');      // නම ගබඩා කිරීමට 'name' නමින් අකුරු තීරුවක්
        $table->timestamps();        // 'created_at' සහ 'updated_at' තීරු දෙක
    });
}

පියවර 3: Model එක සකස් කිරීම

Greeting::create() වැනි ලේසි ක්‍රම වලින් දත්ත ඇතුළත් කිරීමට නම්, කුමන තීරුවලටද එසේ දත්ත ඇතුළත් කිරීමට අවසර දෙන්නේ කියා Model එකට කිව යුතුයි. මෙය ආරක්ෂාවට වැදගත් වේ.

දැන් app/Models/Greeting.php ගොනුව විවෘත කර, use HasFactory; යටින් පහත කේතය ඇතුළත් කරන්න.

// app/Models/Greeting.php

class Greeting extends Model
{
    use HasFactory;

    /**
     * 'name' තීරුවට පිටතින් දත්ත ඇතුළත් කිරීමට අවසර දීම.
     */
    protected $fillable = ['name'];
}

පියවර 4: සැලැස්ම ක්‍රියාත්මක කර වගුව සෑදීම

අපි දැන් සකස් කළ සැලැස්ම (Migration) ක්‍රියාත්මක කර database එකේ greetings වගුව සෑදීමට කාලයයි. Terminal එකේ පහත command එක ක්‍රියාත්මක කරන්න.

php artisan migrate

මෙය ක්‍රියාත්මක වූ පසු, ඔබගේ database එකේ (උදා: phpMyAdmin) බැලුවොත් greetings නමින් අලුත් වගුවක් සෑදී ඇති බව පෙනේවි.

පියවර 5: Tinker මගින් පරීක්ෂා කිරීම

අපේ Model එක සහ database වගුව හරියට වැඩ කරනවාදැයි ඉක්මනින් පරීක්ෂා කිරීමට Laravel අපට Tinker නමින් මෙවලමක් ලබා දෙනවා.

  1. පළමුව, Terminal එකේ tinker ආරම්භ කරන්න:
    php artisan tinker
  2. දැන් අපි greetings වගුවට අලුතින් නමක් ඇතුළත් කරමු. Tinker එක තුළ පහත command එක ක්‍රියාත්මක කරන්න:
    App\Models\Greeting::create(['name' => 'Kamal']);
  3. එය සාර්ථකව ඇතුළත් වුනාදැයි බැලීමට, වගුවේ ඇති සියලු දත්ත ලබා ගනිමු:
    App\Models\Greeting::all();

ඔබට "Kamal" යන නම සමඟින් දත්ත එකතුවක් ප්‍රතිඵල ලෙස පෙනෙනු ඇත. මෙයින් අදහස් වන්නේ ඔබගේ Model සහ Migration සාර්ථකව ක්‍රියාත්මක වන බවයි. Tinker වෙතින් ඉවත් වීමට exit ලෙස type කරන්න.

📜 සාරාංශය

මෙම පාඩමෙන් ඔබ, දත්ත ගබඩා කිරීමට අවශ්‍ය සැලැස්ම (Migration) එකක් සෑදීමටත්, එම දත්ත කළමනාකරණය කරන කළමනාකරු (Model) එකක් සෑදීමටත්, ඒවා ක්‍රියාත්මක කර දත්ත ඇතුළත් කර පරීක්ෂා කිරීමටත් ඉගෙන ගත්තා.