Chyba v komponentě při funkci render
- sppilka
- Člen | 37
Zdravím,
Potřeboval bych poradit s jednou věcí. Mám komponentu co vytváří
tabulku s daty. Na pravé straně je edit a mazání. Mazání mám vyřešené
ale edit dělá chybu. Šablona vypadá takto:
…
{foreach $classbook as $cbook}
<tr n:class="$iterator->isOdd() ? 'a' : 'alternate-row' ">
<td>{$cbook->date|date:'y-m-d'}</td>
<td>{$cbook->lesson->howlong}</td>
<td>{$cbook->plan}</td>
<td>{$cbook->activity}</td>
<td>{$cbook->homework}</td>
<td>{$cbook->note}</td>
<td class="action"><a href="{plink Classbook:editLessonPart $cbook->id}">editovat</td>
<td class="action"><a n:href="deleteLesson! $cbook->id">vymazat</td>
</tr>
{/foreach}
…
U Edit potřebuji odkázat s parametrem na jiný presenter, v presenteru zavolám funkci:
public function actionEditLessonPart($id){
return $id;
}
Když najedu na odkaz edit tak url je taková jakou potřebuji ale po potvrzení mi laděnka hodí chybu, že nemůže najít componentu která je v layoutu a je připravena basePresenteru a to stím vubec nesouvisí…
Když odstraním funkci actionEditLessonPart tak laděnka nehlasí chybu v basepresenteru a layoutu ale že nemá komu předat parametr.
Nevíte proč díky tomu render nebo action se jakoby úplně vypne
basePresenter?
Děkuji moc za odpověď
- sppilka
- Člen | 37
No v Layoutu mam normálně {form selectForm} ten je definován správně v BasePresenteru… Problém je, že jakmile do ClassbookPresenteru přidám funkci actionEditLessonPart která by si měla vzít parametr od toho odkazu v té komponěntě co jsem výše uvedl, tak landěnka hodí chybu:
<?php Nette\Latte\Macros\FormMacros::renderFormBegin($form = $_form = $_control["selectForm"], array()) ;if (is_object($form)) $_ctrl = $form; else $_ctrl = $_control->getComponent($form); if ($_ctrl instanceof Nette\Application\UI\IRenderable) $_ctrl->validateControl(); $_ctrl->render('errors') ?>
Jakož to chyba že chybí komponenta s jménem selectForm… a ta přitom je v pořádku. Protože když vymažu tu funkci action… tak to chybu nehodí, ale odkaz nemůže předat parametr a ani se to neuskuteční.
Kdyby si potřeboval více z laděnky tak řekni ale je to jen tento řádek
- sppilka
- Člen | 37
No zrovna začátečník nejsem, teda ne v php, ale prostě tuhle chybu mi hlava nebere…
Jak jsem říkal laděnka hlásí Component with name ‚selectForm‘ does not exist.
Ale zase na druhou stranu to prostě chybu nehlásí když přepnu na jinou funkci. A další věc je že když vymažu ten form v layoutu tak to narazí na jinou chybu z layoutu, a to že nezná funkci z toho Basepresenteru… je to nějaké divné…
Odkaz v šabloně na jiný presenter mám ok, ovšem jak by si přijal v tom presenteru kam odkazuji ten parametr? jakou funkcí?