Autor | Zpráva | ||
---|---|---|---|
Pavel Vanek Profil * |
#1 · Zasláno: 12. 1. 2017, 20:04:56
Dobrý den,
rád bych se zeptal, kde mohu dělat chybu. S nette, začínám, mám továrničku, konkrétně menu. V MenuControl.php mám následující: <?php use Nette\Forms\Controls\BaseControl; class MenuControl extends BaseControl { public function render() { $this->template->render(__DIR__ . '/menu.latte'); } public function createComponentMenu() { $menu = [ 'foo' => 'bar', ]; return $menu; } } interface IMenuControlFactory { /** @return MenuControl */ function create(); } v BasePresenter.php mám: <?php namespace App\Presenters; use Nette\Application\UI\Presenter; class BasePresenter extends Presenter { /** @var \IMenuControlFactory @inject */ public $menu; /** * @return mixed */ public function createComponentMenu() { return $this->menu->create(); } } a neonu: services: router: App\RouterFactory::createRouter - IMenuControlFactory v @lazout.latte mám: {control menu} Přesto latte vypisuje "Component with name 'menu' does not exist". Nevíte kde by mohla být chyba? |
||
Kcko Profil |
A když zavoláš
{control Menu} ?
|
||
Pavel Vanek Profil * |
#3 · Zasláno: 12. 1. 2017, 21:12:38
To samé. Mám za to, že první písmeno musí být malé.
|
||
Kcko Profil |
Pavel Vanek:
Mě to funguje, akorát bys měl dědit od Nette\Application\UI\Control A nastavení šablony máš blbě, má to být takto: $this->template->setFile(__DIR__ . '/menu.latte'); $this->template->render(); |
||
Časová prodleva: 7 let
|
0