Matoucí PHP User Warning: Invalid link: Missing parameter $timestamp
- m.brecher
- Generous Backer | 871
Ahoj,
Plánuji komponentu, která by měla po javascriptové události odeslat ajaxem timestamp na server a zapsat jej do databáze.
Komponenta obslouží ajax požadavek ovladačem handleExport():
class DocumentControl extends Control
{
public function handleExport(string $timestamp)
{
}
public function renderScript()
{
$this->template->render(__DIR__.'/documentControl.script.latte');
}
}
Url a jméno parametru pro javascript vykreslí documentControl.script.latte:
<script src="{$basePath}/js/app/DocumentControl.js"></script>
<script>
documentControl.init({link 'export!'}, {$control->getParameterId('timestamp')})
</script>
Bohužel Nette vyhazuje kvůli {link ‚export!‘} warning:
PHP User Warning: Invalid link: Missing parameter $timestamp....
Warning se vyhodí i když přesuneme tvorbu url dovnitř komponenty:
class DocumentControl extends Control
{
// ...
public function renderScript()
{
$this->template->url = $this->link('export!');
$this->template->parameterId = $this->getParameterId('timestamp');
$this->template->render(__DIR__.'/documentControl.script.latte');
}
}
Warning nedává smysl, protože signál se bude vyvolávat čistě javascriptem a javascript potřebuje url signálu a jméno parametru odděleně. Warning mě nutí, abych přidal do {link …} parametr signálu – jenže v javascriptu je potřeba url signálu bez parametru.
Máte nějaké zkušenosti, nebo nápady, jestli má tato situace nějaké řešení – jak potlačit nežádoucí warning ??