මේ කොටසේදී, අපි අපේ Pizza Ordering System එකට අවශ්ය database tables (වගු) නිර්මාණය කරනවා. මේ සඳහා Laravel හි **Migrations** සහ **Models** කියන concepts දෙක අපි පාවිච්චි කරනවා.
අපේ pizza වර්ග සහ ඒවායේ මිල ගබඩා කර තබාගැනීමට `pizzas` නමින් table එකක් අවශ්යයි. මේ සඳහා අපි model එක සහ migration file එක එකවර සාදාගමු.
Terminal එකේ පහත command එක run කරන්න.
php artisan make:model Pizza -m
මෙහි `make:model Pizza` මගින් `app/Models/Pizza.php` නමින් model එකක්ද, `-m` flag එක නිසා `database/migrations/` ෆෝල්ඩරය තුළ අදාල migration file එකක්ද සෑදේ.
දැන් `database/migrations/` ෆෝල්ඩරයේ අලුතින් සෑදුනු `..._create_pizzas_table.php` file එක open කර, එහි `up()` function එක පහත පරිදි සකසන්න.
public function up()
{
Schema::create('pizzas', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->decimal('price', 8, 2);
$table->timestamps();
});
}
මෙහි `$table->string('name');` මගින් pizza එකේ නම සඳහා ද, `$table->decimal('price', 8, 2);` මගින් මිල සඳහා ද columns (තීරු) සෑදේ.
පරිශීලකයින්ගේ ඇණවුම් (orders) ගබඩා කිරීමට `orders` නමින් table එකක් අවශ්යයි. ඉහත ආකාරයටම model සහ migration file එක සාදාගමු.
php artisan make:model Order -m
දැන් අලුතින් සෑදුනු `..._create_orders_table.php` file එකේ `up()` function එක මෙසේ සකසන්න.
public function up()
{
Schema::create('orders', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->onDelete('cascade');
$table->foreignId('pizza_id')->constrained()->onDelete('cascade');
$table->integer('quantity');
$table->string('status')->default('Pending'); // Pending, Approved, Rejected
$table->timestamps();
});
}
මෙහි `user_id` මගින් order එක දැමූ user වද, `pizza_id` මගින් ඇණවුම් කළ pizza එකද හඳුනාගනී. `status` මගින් ඇණවුමේ තත්ත්වය (උදා: Pending) සටහන් කරගනී.
දැන් අපි මේ සෑදූ migration files (blueprints) භාවිතයෙන් database එකේ tables ටික නිර්මාණය කරගමු. මේ සඳහා නැවතත් `migrate` command එක run කරන්න.
php artisan migrate
මෙය run වූ පසු, phpMyAdmin වෙත ගොස් බැලුවහොත්, ඔබේ database එකේ අලුතින් `pizzas` සහ `orders` නමින් tables දෙකක් සෑදී ඇති බව ඔබට පෙනේවි.
නියමයි! අපි අපේ යෙදුමට අවශ්ය database ව්යුහය සාර්ථකව නිර්මාණය කළා. ඊළඟට අපි user ට pizza ඇණවුම් කිරීමට අවශ්ය interface එක හදමු.