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
+
0
-

Č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
+
+2
-

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.

mi85
Člen | 41
+
0
-

jiri.pudil napsal(a):

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.

Děkuji ! :-)

iNviNho
Člen | 352
+
+1
-

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>