Controller dan Action
Buat controller dengan artisan dan tangani permintaan dalam method action.
Controller dan Action adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Apa Itu Pengendali?
Pengendali mengelompokkan logika terkait untuk menangani permintaan. Alih-alih menggunakan penutupan dalam berkas rute, delegasikan penanganannya ke metode pengendali (aksi).
Membuat Pengendali
Gunakan Artisan untuk membuat kerangka awal pengendali.
$ php artisan make:controller UserController
$ php artisan make:controller PostController --resourcePengendali Dasar
Pengendali memperluas Controller dan memiliki metode publik untuk setiap aksi rute.
<?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"));
}
}Mengakses Permintaan
Tentukan tipe Illuminate\Http\Request dalam metode aksi — Laravel menyisipkannya secara otomatis.
<?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");
}Validasi Formulir
Gunakan $request->validate() untuk memvalidasi masukan. Jika gagal, Laravel otomatis mengalihkan kembali disertai kesalahan.
<?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");
}Metode Pengendali Sumber Daya
Pengendali sumber daya memiliki 7 metode konvensional: index, create, store, show, edit, update, destroy.
Pengendali Aksi Tunggal
Pengendali yang dapat dipanggil memiliki satu metode __invoke() — ideal untuk aksi yang melakukan tepat satu hal.
<?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);Perangkat Tengah Pengendali
Terapkan perangkat tengah pada aksi tertentu menggunakan metode middleware() dalam konstruktor.
<?php
public function __construct()
{
$this->middleware("auth")->except(["index", "show"]);
}Penyisipan Dependensi
Tentukan tipe layanan pada parameter metode aksi — Laravel menyelesaikannya dari wadah layanan.
<?php
public function store(Request $request, Mailer $mailer): JsonResponse
{
// $mailer is auto-injected
}Mengembalikan Respons
Pengendali dapat mengembalikan: tampilan, pengalihan, respons JSON, dan unduhan berkas.
<?php
return view("users.show", compact("user"));
return redirect()->back()->with("status", "Saved!");
return response()->json($user);
return response()->download(storage_path("report.pdf"));Ruang Nama Pengendali
Secara bawaan, semua pengendali berada di App\Http\Controllers. Subdirektori membuat ruang nama turunan: App\Http\Controllers\Admin\UserController.
Menjaga Pengendali Tetap Ringkas
Pengendali sebaiknya mendelegasikan logika bisnis kepada kelas layanan atau aksi. Usahakan pengendali hanya melakukan hal-hal berikut: memvalidasi masukan, memanggil layanan, dan mengembalikan respons.
Ringkasan
Buat pengendali dengan Artisan. Tentukan tipe Request dan layanan agar disisipkan secara otomatis. Gunakan validate() untuk validasi masukan. Jaga pengendali tetap ringkas — delegasikan tugas kepada layanan.
Pemeriksaan Singkat
Perintah Artisan apa yang membuat pengendali sumber daya?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Controller dan Action” gratis?
Ya — teks lengkap “Controller dan Action” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Controller dan Action”?
Buat controller dengan artisan dan tangani permintaan dalam method action. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Controller dan Action” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Struktur Proyek Laravel
- Mendefinisikan Rute di Laravel
- Controller dan Action
- Templat dan Tampilan Blade