nefunkční metoda link – negeneruje správný odkaz
- Jeriiii
- Člen | 21
Zdravím,
narazil jsem na problém s metodou link().
$link = $presenter->link($path, $id_click);
echo $path . " - "; echo $id_click . " - "; die($link);
mi vypíše řetězec
Admin:formsQuery – 28 – /nette/jednoduche_stranky/www/admin/forms-query
Problém je v tom, že odkaz by měl ještě mít na konci
?id_click=28
Zkoušel jsem sestavit link i tímto způsobem, výsledek je bohužel stejný, chybí id_click
$link = $presenter->link($path, array("id_click" => $id_click));
Nemůžu přijít na to co dělám špatně.
Díky za pomoc.
- Tomáš Votruba
- Moderator | 1114
Ahoj,
pošli presenter (pokud je velký, tak externě (gist…)) + jaké máš routy. Toto vypadá správně, možná v nich bude něco špatně.
Pokud to zkoušíš zadat v šabloně, funguje?
<a n:href="this, id_click => $id_click">Test</a>
- Jeriiii
- Člen | 21
A mám poslat presenter, nad kterým se metoda link používá nebo presenter, kam link odkazuje?
Moje routy jsou tady, ale ty to asi neovlivní
// Setup router
$router = new RouteList;
$container->router = $router;
$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$router[] = new Route('page/news/', array(
'presenter' => 'Page',
'action' => 'news',
'id' => NULL
));
$router[] = new Route('page/<id>/', array(
'presenter' => 'Page',
'action' => 'default',
'id' => '<id>'
));
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
Tady je akce v prezenteru na kterou to odkazuje
public function actionFormsQuery($id_click)
{
$this->template->id_click = $id_click;
$this->template->forms = $this->context->createForms_query();
}
A tady je formulář, kde se tvoří link – presenter si předávám jako parametr
class BaseForm extends Form
{
public function __construct(IContainer $parent = NULL, $name = NULL)
{
parent::__construct($parent, $name);
}
/**
* zaznamenani odeslani mailu do specialni tabulky
*/
public function registerNewSendForm($path, $id_form, $presenter, $name, $id_click) {
if($path == "standart") {
$form = $presenter->context->createForms()
->find($id_form)
->fetch();
$link = $presenter->link("Admin:formsX", array("id_form" => $form->id, "type" => $form->type, "id_click" => $id_click));
$name = $form->name;
}else{
$link = $presenter->link($path, array("id_click" => $id_click));
// echo $path . " - "; echo $id_click . " - "; die($link);
}
$presenter->context->createForm_new_send()
->insert(array(
"path" => $link,
"name" => $name,
"date" => new DateTime()
));
}
}