Skip to content

Helpers

GoIgniter menyediakan beberapa helper function yang bisa digunakan di controller maupun template.

Menghasilkan URL lengkap berdasarkan APP_URL atau APP_PORT dari environment.

import "github.com/semutdev/goigniter/system/helpers"
// Di controller
url := helpers.BaseURL() // "http://localhost:8080"
url := helpers.BaseURL("/products") // "http://localhost:8080/products"
url := helpers.SiteURL("admin/user") // "http://localhost:8080/admin/user"

Di template:

<a href="{{site_url "product/edit"}}">Edit</a>
<link rel="stylesheet" href="{{base_url "/static/css/style.css"}}">

Menghasilkan URL untuk static assets di folder public/.

url := helpers.AssetURL("css/style.css") // "http://localhost:8080/public/css/style.css"

Di template:

<link rel="stylesheet" href="{{asset_url "css/style.css"}}">
<script src="{{asset_url "js/app.js"}}"></script>

Helper untuk debugging data di controller. Mencetak data dengan format yang mudah dibaca.

import "github.com/semutdev/goigniter/system/helpers"
func (p *Product) Edit() {
id := p.Ctx.Param("id")
var product models.Product
database.Table("products").Where("id", id).First(&product)
data := core.Map{
"Title": "Edit Product",
"Product": product,
}
// Debug data sebelum render
helpers.PrintDebug(data)
p.Ctx.View("admin/inc/header", data)
p.Ctx.View("admin/product/edit", data)
p.Ctx.View("admin/inc/footer", data)
}

Output:

========== DEBUG START ==========
{
"Title": "Edit Product",
"Product": {
"ID": 1,
"Name": "Laptop ASUS ROG",
"Price": 15000000,
"Stock": 10,
"CreatedAt": "2026-01-15T10:30:00Z",
"UpdatedAt": "2026-01-20T14:22:00Z"
}
}
=========== DEBUG END ===========
helpers.PrintDebug(data["Product"]) // Aman jika nil

Output jika data nil:

========== DEBUG START ==========
Data is nil
=========== DEBUG END ===========

Semua helper functions juga tersedia di template. Lihat Template Engine untuk daftar lengkap template functions.

FunctionDescription
site_urlGenerate full URL
base_urlGenerate full URL
asset_urlGenerate URL for public assets
upperUppercase string
lowerLowercase string
titleTitle case string
trimTrim whitespace
safeRender HTML without escape
containsCheck if string contains substring
replaceReplace all occurrences
splitSplit string to slice
joinJoin slice to string
defaultReturn default if value is empty
eqEqual comparison
neNot equal comparison

Di main.go, helpers perlu diinisialisasi dengan base URL:

func main() {
// ...
// Initialize helpers
port := os.Getenv("APP_PORT")
if port == "" {
port = ":8080"
}
helpers.Init("http://localhost" + port)
// ...
}