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
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)