Laravel คือเฟรมเวิร์ก PHP ที่ได้รับความนิยมสูงสุดในโลก ช่วยให้สร้างเว็บแอปขนาดใหญ่ได้เร็ว เป็นระเบียบ และปลอดภัย บทความนี้จะพาคุณรู้จักโครงสร้างและองค์ประกอบหลักของ Laravel เพื่อเริ่มต้นสร้างระบบจริง
═══════════════════════════════════════
📌 1. Laravel คืออะไร และ MVC
═══════════════════════════════════════
Laravel เป็น PHP Framework ที่ใช้แนวคิด MVC แยกโค้ดเป็นส่วน ๆ ให้จัดการง่าย
• Model → จัดการข้อมูล/ฐานข้อมูล
• View → หน้าตาที่ผู้ใช้เห็น (Blade)
• Controller → ตัวกลางรับคำขอ ประมวลผล ส่งข้อมูลไป View
ข้อดี: มีเครื่องมือครบ (routing, ORM, auth, migration), เขียนน้อยได้มาก,
ปลอดภัย และมีชุมชนใหญ่
═══════════════════════════════════════
🔧 2. ติดตั้งและสร้างโปรเจกต์
═══════════════════════════════════════
ต้องมี PHP, Composer ก่อน แล้วสร้างโปรเจกต์ด้วยคำสั่ง
# สร้างโปรเจกต์ Laravel ใหม่
composer create-project laravel/laravel myapp
# เข้าโฟลเดอร์และรันเซิร์ฟเวอร์
cd myapp
php artisan serve
เปิดเบราว์เซอร์ที่ http://127.0.0.1:8000 จะเห็นหน้าต้อนรับของ Laravel
═══════════════════════════════════════
📁 3. โครงสร้างโฟลเดอร์สำคัญ
═══════════════════════════════════════
• app/Models/ → คลาส Model
• app/Http/Controllers/ → Controller
• routes/web.php → กำหนดเส้นทาง (URL)
• resources/views/ → ไฟล์ Blade (หน้าเว็บ)
• database/migrations/ → โครงสร้างตาราง
• .env → ตั้งค่า (ฐานข้อมูล, แอป)
• public/ → จุดเริ่มเว็บ (index.php)
═══════════════════════════════════════
🛣️ 4. Routing — กำหนดเส้นทาง
═══════════════════════════════════════
เขียนใน routes/web.php
<?php
use Illuminate\Support\Facades\Route;
// เส้นทางง่าย ๆ คืนข้อความ
Route::get('/hello', function () {
return 'สวัสดี Laravel';
});
// ชี้ไปที่ Controller
Route::get('/users', [UserController::class, 'index']);
// รับพารามิเตอร์จาก URL
Route::get('/user/{id}', function ($id) {
return "ผู้ใช้ไอดี: $id";
});
═══════════════════════════════════════
🎮 5. Controller — ตัวควบคุม
═══════════════════════════════════════
สร้างด้วย artisan แล้วเขียนเมธอด
php artisan make:controller UserController
<?php
namespace App\Http\Controllers;
use App\Models\User;
class UserController extends Controller
{
public function index()
{
$users = User::all(); // ดึงผู้ใช้ทั้งหมด
return view('users.index', compact('users'));
}
}
═══════════════════════════════════════
🎨 6. Blade View — หน้าตาเว็บ
═══════════════════════════════════════
ไฟล์ resources/views/users/index.blade.php
<h1>รายชื่อผู้ใช้</h1>
<ul>
@foreach($users as $user)
<li>{{ $user->name }} - {{ $user->email }}</li>
@endforeach
</ul>
@if($users->isEmpty())
<p>ยังไม่มีผู้ใช้</p>
@endif
ไวยากรณ์ Blade:
• {{ $var }} → แสดงค่า (escape อัตโนมัติ ปลอดภัย)
• @foreach @if → คำสั่งควบคุม
• @extends @section → สืบทอด layout
═══════════════════════════════════════
🗄️ 7. Migration และ Model (Eloquent)
═══════════════════════════════════════
Migration = สร้างตารางด้วยโค้ด (ควบคุมเวอร์ชันฐานข้อมูลได้)
php artisan make:migration create_posts_table
php artisan migrate
<?php
// ในไฟล์ migration
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->timestamps();
});
Eloquent Model = ตัวแทนตาราง เขียน query แบบสั้น
<?php
// ดึงและจัดการข้อมูลด้วย Eloquent
$posts = Post::all(); // ทั้งหมด
$post = Post::find(1); // ตาม id
$new = Post::create(['title' => 'สวัสดี', 'body' => '...']); // เพิ่ม
$post->update(['title' => 'แก้ไขแล้ว']); // แก้ไข
$post->delete(); // ลบ
// มีเงื่อนไข
$recent = Post::where('title', 'like', '%ข่าว%')
->orderBy('created_at', 'desc')
->get();
═══════════════════════════════════════
🔄 8. คำสั่ง Artisan ที่ใช้บ่อย
═══════════════════════════════════════
php artisan serve # รันเซิร์ฟเวอร์
php artisan make:model Post -mc # สร้าง Model + migration + controller
php artisan make:controller XController
php artisan migrate # รัน migration
php artisan route:list # ดูเส้นทางทั้งหมด
php artisan make:migration ... # สร้าง migration
═══════════════════════════════════════
✅ 9. สรุปและเส้นทางต่อไป
═══════════════════════════════════════
• Laravel ใช้ MVC: Route → Controller → Model/View
• ใช้ artisan สร้างไฟล์ต่าง ๆ อย่างรวดเร็ว
• Eloquent ทำให้จัดการฐานข้อมูลง่ายมาก (ไม่ต้องเขียน SQL ตรง ๆ)
• Blade ช่วยเขียนหน้าเว็บพร้อมลูป/เงื่อนไข และปลอดภัยจาก XSS
• ตั้งค่าฐานข้อมูลใน .env ก่อน migrate เสมอ
เส้นทางต่อไป:
พื้นฐาน Route/Controller/View → Eloquent + Migration
→ Form/Validation → Authentication → REST API → Deploy
จำไว้: Laravel ช่วยให้คุณโฟกัสที่ "ตรรกะธุรกิจ" ไม่ต้องเสียเวลากับงานซ้ำ ๆ 🚀