0Pricing
PHP Academy · บทเรียน

คอนโทรลเลอร์และการดำเนินการ

สร้างคอนโทรลเลอร์ด้วย artisan และจัดการคำขอในเมธอดการดำเนินการ

คอนโทรลเลอร์และการดำเนินการ เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คอนโทรลเลอร์คืออะไร

คอนโทรลเลอร์จัดกลุ่มตรรกะที่เกี่ยวข้องกับการจัดการคำขอ แทนที่จะใช้คลอสเชอร์ในไฟล์เส้นทาง คุณสามารถมอบหมายงานให้เมธอดของคอนโทรลเลอร์ (การดำเนินการ) ได้

การสร้างคอนโทรลเลอร์

ใช้ Artisan เพื่อสร้างโครงร่างคอนโทรลเลอร์

$ php artisan make:controller UserController
$ php artisan make:controller PostController --resource

คอนโทรลเลอร์พื้นฐาน

คอนโทรลเลอร์สืบทอดจาก Controller และมีเมธอดสาธารณะสำหรับการดำเนินการของแต่ละเส้นทาง

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
    public function index(): \Illuminate\View\View
    {
        $users = User::all();
        return view("users.index", compact("users"));
    }
}

การเข้าถึงคำขอ

ระบุ Illuminate\Http\Request ด้วยคำใบ้ชนิดข้อมูลในเมธอดการดำเนินการ — Laravel จะฉีดออบเจ็กต์นี้ให้โดยอัตโนมัติ

<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
    $name  = $request->input("name");
    $email = $request->input("email");
    User::create(["name" => $name, "email" => $email]);
    return redirect()->route("users.index");
}

การตรวจสอบข้อมูลแบบฟอร์ม

ใช้ $request->validate() เพื่อตรวจสอบข้อมูลนำเข้า หากไม่ผ่าน Laravel จะเปลี่ยนเส้นทางกลับพร้อมข้อผิดพลาดโดยอัตโนมัติ

<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
    $validated = $request->validate([
        "name"  => "required|string|max:255",
        "email" => "required|email|unique:users",
    ]);
    User::create($validated);
    return redirect()->route("users.index");
}

เมธอดของคอนโทรลเลอร์ทรัพยากร

คอนโทรลเลอร์ทรัพยากรมีเมธอดตามแบบแผน 7 เมธอด ได้แก่ index, create, store, show, edit, update, destroy

คอนโทรลเลอร์การดำเนินการเดียว

คอนโทรลเลอร์ที่เรียกใช้งานได้มีเมธอด __invoke() เพียงเมธอดเดียว — เหมาะสำหรับการดำเนินการที่ทำงานเพียงอย่างเดียวโดยเฉพาะ

<?php
class SendWelcomeEmail extends Controller
{
    public function __invoke(User $user): void
    {
        Mail::to($user)->send(new WelcomeMail($user));
    }
}
// Route:
Route::post("/users/{user}/welcome", SendWelcomeEmail::class);

มิดเดิลแวร์ของคอนโทรลเลอร์

ใช้มิดเดิลแวร์กับการดำเนินการที่ต้องการ โดยใช้เมธอด middleware() ในตัวสร้าง

<?php
public function __construct()
{
    $this->middleware("auth")->except(["index", "show"]);
}

การฉีดการพึ่งพา

ระบุบริการในพารามิเตอร์ของเมธอดการดำเนินการด้วยคำใบ้ชนิดข้อมูล — Laravel จะค้นหาและสร้างบริการจากคอนเทนเนอร์บริการ

<?php
public function store(Request $request, Mailer $mailer): JsonResponse
{
    // $mailer is auto-injected
}

การส่งคืนการตอบกลับ

คอนโทรลเลอร์สามารถส่งคืนได้ทั้งมุมมอง การเปลี่ยนเส้นทาง การตอบกลับแบบ JSON และการดาวน์โหลดไฟล์

<?php
return view("users.show", compact("user"));
return redirect()->back()->with("status", "Saved!");
return response()->json($user);
return response()->download(storage_path("report.pdf"));

เนมสเปซของคอนโทรลเลอร์

โดยค่าเริ่มต้น คอนโทรลเลอร์ทั้งหมดอยู่ใน App\Http\Controllers ไดเรกทอรีย่อยจะสร้างเนมสเปซย่อย เช่น App\Http\Controllers\Admin\UserController

การทำให้คอนโทรลเลอร์กระชับ

คอนโทรลเลอร์ควรมอบหมายตรรกะทางธุรกิจให้คลาสบริการหรือการดำเนินการ ควรออกแบบให้คอนโทรลเลอร์ทำเพียงการตรวจสอบข้อมูลนำเข้า เรียกใช้บริการ และส่งคืนการตอบกลับ

สรุป

สร้างคอนโทรลเลอร์ด้วย Artisan ระบุ Request และบริการด้วยคำใบ้ชนิดข้อมูลเพื่อให้ฉีดโดยอัตโนมัติ ใช้ validate() สำหรับตรวจสอบข้อมูลนำเข้า และทำให้คอนโทรลเลอร์กระชับด้วยการมอบหมายงานให้บริการ

ตรวจสอบความเข้าใจ

คำสั่ง Artisan ใดใช้สร้างคอนโทรลเลอร์ทรัพยากร

คำถามที่พบบ่อย

บทเรียน “คอนโทรลเลอร์และการดำเนินการ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “คอนโทรลเลอร์และการดำเนินการ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “คอนโทรลเลอร์และการดำเนินการ”

สร้างคอนโทรลเลอร์ด้วย artisan และจัดการคำขอในเมธอดการดำเนินการ คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “คอนโทรลเลอร์และการดำเนินการ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้างโครงการ Laravel
  2. การกำหนดเส้นทางใน Laravel
  3. คอนโทรลเลอร์และการดำเนินการ
  4. เทมเพลตและมุมมอง Blade
← กลับไปที่ PHP Academy