Smazání záznamu v related tabulce

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wicked
Člen | 290
+
0
-

Zdravím vás a předem děkuji za pomoc.

Mám Homepage presenter, který pomocí linku odkazuji na editaci polozky

Link na editaci

<a n:href="upravitProdukt, $p->id" title="Upravit položku"><i class="fa fa-edit"></i></a>

V presenteru mám

// Akce na upravu produktu
    public function actionUpravitProdukt($id) {
        $produkt = $this->produkty->findAll()->where("id", $id);
        if (!$produkt->count())
            $this->redirect("default");
        $produkt = $produkt->fetch();
        $this["produktForm"]->setDefaults($produkt);
        $this["produktForm"]['save']->caption = "Uložit";
        $this["produktForm"]->addButton('cancel', 'Zrušit')
                ->getControlPrototype()
                ->class('btn btn-block btn-info');
        $this->template->produkt = $produkt;
    }

V šabloně na úpravu produktu

                    {foreach $produkt->related('soubory') as $s}
                        <a href="{$basePath}{$s->cesta}" target="_blank" class="image full"><img src="{$basePath}{$s->cesta}" alt="img"  title="{$produkt->nadpis}"/></a>
                        <a n:href="smazatSoubor!, $s->id" onClick="return dotaz();" title="Smazat položku"><i class="fa fa-times"></i></a>
                    {/foreach}

Jde mi o to, že když kliknu na hendle smazatSoubor! tak mě to nic neprovede, jen redirect na Homepage bez ničeho, zkoušel jsem do toho nastavit i dump a nic, prosty redicert

// Signal smazani souboru
    public function handleSmazatSoubor($id) {
        $soubor = $this->soubory->findAll()->where("id", $id);
        if (!$soubor->count())
            $this->redirect("this");
        $soubor->delete();
        $this->flashMessage("Soubor byl odstraněn!", "alert alert-success");
        $this->redirect("Homepage:");
    }

Přijde mi ještě zvláštní, že v Homepage mám i možnost mazat celý produkt a to mazaní funguje v pořádku.

Osobně hádám že handle smazatSoubor! nefunguje v jiném než default view …

Každopádně nevím jak se hnout dál …

Doufám, že jsem to napsal srozumitelně a za každou radu děkuji.

Wicked

Edit:
ID to dosadí správně, dotaz to taky provede, ale nevykoná nic co je uvnitř funkce

Editoval wicked (16. 7. 2014 7:46)

Caine
Člen | 216
+
+1
-

a nebude to tim, ze do actionUpravitProdukt($id) strkas ID souboru, tim padem produkt nemusi existovat a skonci to $this->redirect("default"); v ty action? Zkus parametr prejmenovat napr na handleSmazatSoubor($souborId).

wicked
Člen | 290
+
0
-

No jasně … víc očí a hlavně víc hlav …

Děkuji!