Controller & View/Template (HEEx)
Penjelasan
Controller di Phoenix adalah modul yang menampung fungsi aksi, setiap fungsi menerima conn dan params lalu memutuskan apa yang dikirim balik ke client, biasanya lewat render/3 untuk merender template atau redirect/2 untuk mengalihkan halaman. Template modern Phoenix ditulis dalam format HEEx (HTML+EEx), sintaks mirip HTML biasa tapi mendukung interpolasi Elixir memakai kurung kurawal. HEEx melakukan validasi struktur HTML saat compile time, sehingga tag yang tidak tertutup akan terdeteksi lebih awal dibanding EEx biasa. Data dikirim dari controller ke template lewat assign, dan di dalam template data itu diakses dengan @nama_assign.
Contoh Konsep
defmodule TokoAppWeb.ProdukController do
use TokoAppWeb, :controller
def index(conn, _params) do
produk_list = [%{nama: "Sepatu", harga: 250000}, %{nama: "Tas", harga: 180000}]
render(conn, :index, produk_list: produk_list)
end
end
# lib/toko_app_web/controllers/produk_html/index.html.heex
# <h1>Daftar Produk</h1>
# <ul>
# <li :for={p <- @produk_list}>{p.nama} - Rp{p.harga}</li>
# </ul>
Praktikum
Buat aksi controller show yang menerima params id, lalu kirim assign judul_artikel ke template.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Gunakan atribut khusus HEEx seperti :for dan :if langsung pada tag HTML untuk perulangan dan kondisi, ini lebih ringkas dibanding tag EEx lama.