Block Variables

Pengenalan

Block Variables menyediakan cara untuk mengelola data berulang dalam template. Sistem ini mendukung nested blocks dan array terstruktur untuk data yang kompleks.

Metode yang Tersedia

1. Single Block Assignment


// Menggunakan nexaBlock
$this->nexaBlock('users', [
    'id' => 1,
    'name' => 'John Doe',
    'role' => 'admin'
]);

// Menggunakan assignBlock
$this->assignBlock('products', [
    'id' => 'PRD001',
    'name' => 'Product A',
    'price' => 100
]);
    

2. Multiple Blocks Assignment


// Menggunakan assignBlocks
$this->assignBlocks([
    'users' => [
        ['id' => 1, 'name' => 'John'],
        ['id' => 2, 'name' => 'Jane']
    ],
    'categories' => [
        ['id' => 'CAT1', 'name' => 'Electronics'],
        ['id' => 'CAT2', 'name' => 'Books']
    ]
]);
    

3. Nested Data Assignment


// Menggunakan assignNestedData
$this->assignNestedData('orders', [
    'order_id' => 'ORD001',
    'items' => [
        ['id' => 1, 'name' => 'Item A', 'qty' => 2],
        ['id' => 2, 'name' => 'Item B', 'qty' => 1]
    ],
    'customer' => [
        'id' => 'CUST001',
        'name' => 'John Doe',
        'address' => [
            'street' => 'Main St',
            'city' => 'New York'
        ]
    ]
]);
    

Fitur Utama

  • Nested Support: Mendukung data bertingkat/nested
  • Array Processing: Otomatis menangani array berulang
  • Flexible Structure: Mendukung berbagai struktur data kompleks
  • Performance Optimized: Menggunakan proses optimasi internal

Template Usage




ID: {users.id} Name: {users.name} Role: {users.role}
Order ID: {orders.order_id} Item: {orders.items.name} (Qty: {orders.items.qty}) Customer: {orders.customer.name} Address: {orders.customer.address.street}, {orders.customer.address.city}

Best Practices

  • Gunakan struktur data yang konsisten untuk setiap block
  • Manfaatkan nested data untuk data yang berkaitan
  • Perhatikan penamaan block untuk menghindari konflik
  • Gunakan assignBlocks untuk multiple block yang berkaitan
Note: Block variables sangat powerful untuk menangani data berulang dan terstruktur. Pastikan struktur data di controller sesuai dengan ekspektasi di template.