Nextras\secured-links neupraví odkaz
- roman.campula
- Člen | 60
Zdravím,
z jedné Posoboty jsem se dozvěděl o nextras\secured-links pro ochranu
handle metod. Pokud to však implementuji, tak se v odkazech vůbec nic
nezmění, žádný token tam není. Co všechno se musí pro zprovoznění
udělat?
Presenter:
<?php
/**
* TestPresenter.php
*/
namespace App\WebModule\Presenters;
use Nextras\Application\UI\SecuredLinksPresenterTrait;
/**
* Test
*
* @package App\WebModule\Presenters
*/
class TestPresenter extends \App\AppModule\Presenters\BasePresenter {
/**
* Konstruktor
*/
function __construct() {
parent::__construct();
}
/**
* @secured
*/
public function handleSmazat($id) {
$this->flashMessage("Smazano", "success");
$this->redrawControl();
}
}
?>
Šablona:
<a n:href="smazat!" class="ajax">smazat</a><br>
<a href="{link smazat!}" class="ajax">smazat</a><br>
<a href="{plink smazat!}" class="ajax">smazat</a>
- jiri.pudil
- Nette Blogger | 1029
Kde používáš tu traitu? V souboru, co jsi poslal, sice máš
use Nextras\Application\UI\SecuredLinksPresenterTrait
, ale
v presenteru už nikoliv; máš ji tedy v BasePresenteru, jak doporučuje
dokumentace?
- roman.campula
- Člen | 60
Jo tak, ono to musí být až v samotné třídě Presenteru… Tak to jsem
se svými chabými znalostmi netušil, že klíčové slovo use
lze
použít i jinde než přímo na nejvyšší úrovni souboru (jako use Nette
apod.). Už to něco dělá, tak to snad rozběhnu.
Děkuji
- Marek Bartoš
- Nette Blogger | 1263
Pro ujasnění – use
na začátku souboru se používá, aby
jsi nemusel uvádět celý namespace třídy, use
uvnitř třídy
se používá pro traity. Ty ti přidávají nové metody nebo překrývají
metody předka.