Study
Phoenix

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.

Editor Latihan

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.