Volání action() – přesměruje na latte
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- mi85
- Člen | 41
Čau mám v DeletePresenter akci na smazání komentáře z databáze
class DeletePresenter extends Presenter
{
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database=$database;
}
public function actionDelete()
{
$user = $this->getUser()->getId();
$this->database->table('comments')->where('name', $user)->delete();
$this->flashMessage('Prispevek smazan');
}
}
Následně ji pak volám v latte <a n:href=„Delete:Delete“>Smazat komentar</a> ale po kliknutí mi to vyhodí
Page not found. Missing template '…\xampp\htdocs\blog\app\presenters\templates\Delete\delete.latte
V čem je chyba ? Díky
- jiri.pudil
- Nette Blogger | 1032
Jelikož v té metodě nijak neukončuješ životní cyklus presenteru (např. přesměrováním), aplikace běží dál do renderu a postrádá pro danou akci šablonu, kterou by mohla vykreslit.
- iNviNho
- Člen | 352
Mne, osobne, by sa viac páčilo handle, respektíve signál. Nie je k tomu potrebná nová šablona a viac to zodpovedá tomu, čo chceš urobiť.
<?php
public function handleDelete()
{
$user = $this->getUser()->getId();
$this->database->table('comments')->where('name', $user)->delete();
$this->flashMessage('Prispevek smazan');
}
?>
<a n:href="delete!">delete</a>