Dynamické snippety a jejich překreslování

JaxP
Člen | 62
+
0
-

Mějme šablonu kde pomocí $item a related() vytahujeme řádky pomocí cizího klíče

<div n:snippet=rowsContainer>
    <div n:foreach="$item->related('rows')->fetchAll() as $row" n:snippet="row-{$row->id}">
         {include 'tiles/'.$row->template->filename.'.latte', 'admin' => true, 'row' => $row}
    </div>
</div>

A mějme k tomu připravený handle

public function handleDeleteBlock($id)
{
    // block je dítě row, obsažen v includu
    $block = /* vytažení bloku */;
    $block->delete();
    $this->redrawControl('rowsContainer');
}

Problém:
Po následném překreslení je $item (původně dosazen do template v renderDetail($id)) roven false.
Jak zařídit překreslení tak, aby $item zůstal a vykreslil se pouze nově daný řádek pro $row v kterém jsme smazali $block?

V opačném případě (přidávání bloku) je vše OK.

public function handleAddBlock($row_id)
{
    $this->blocksModel->save($values);
    $this->redrawControl('rowsContainer');
} //$item zůstane

Děkuji za rady

Editoval JaxP (9. 4. 2018 16:07)

JaxP
Člen | 62
+
0
-

Problém vyřešen.

Metoda handleDeleteBlock($id) očekává parametr $id, stejně jako renderDetail($id) (tím se přetíží parametr $id pro $item). Změna názvu proměnné handleDeleteBlock($block_id) zabrala.