nedaří se vytvořit komponentu
- jik
- Člen | 146
Prosím o radu, zápasím s komponentou, stále mi to
hlásí:Component with name ‚Testik‘ does not exist.
opravuji: žádná služba nevytvořena (V config.neon vytvořená
služba:)
komponenta:
testik.latte
<p>nazdar!</p>
Testik.php
<?php
namespace Kada;
use Nette;
class TestikControl extends Nette\Application\UI\Control {
public function render() {
$this->template->setFile(__DIR__ . '/testik.latte');
$this->template->render();
}
}
Presenter obsahuje:
<?php
protected function createComponentTestik() {
return new Testik\TestikControl();
}
?>
a šablona:
{control Testik}
Editoval jik (4. 9. 2012 14:13)
- Ot@s
- Backer | 476
jik napsal(a):
Jo, tak tu botu s config.neonem už vidím, ale co to je klasický způsob definice komponenty v presenteru? Celkem bych očekával, že je to:
<?php protected function createComponentTestik() { return new Testik\TestikControl(); } ?>
Ano. Jiný způsob je přes továrny komponent přes konfiguraci v neonu. Proto mě zmátla ta tvoje services v config.neon.
- Zdeno1981
- Člen | 114
jik napsal(a):
Prosím o radu, zápasím s komponentou, stále mi to hlásí:Component with name ‚Testik‘ does not exist.
opravuji: žádná služba nevytvořena (V config.neon vytvořená služba:)komponenta:
testik.latte<p>nazdar!</p>
Testik.php
<?php namespace Kada; use Nette; class TestikControl extends Nette\Application\UI\Control { public function render() { $this->template->setFile(__DIR__ . '/testik.latte'); $this->template->render(); } } Presenter obsahuje: <?php protected function createComponentTestik() { return new Testik\TestikControl(); } ?>
a šablona:
{control Testik}
Ahoj, podle me chyba v makru {control testik} u makra control se vzdy začíná s malým písmenem.
- leninzprahy
- Člen | 150
taky mi přijde, že je tam špatně namespace Testik místo Kada
Testik.php
namespace Kada; use Nette; class TestikControl extends Nette\Application\UI\Control { public function render() { $this->template->setFile(__DIR__ . '/testik.latte'); $this->template->render(); } }
Presenter obsahuje:
protected function createComponentTestik() { return new Testik\TestikControl(); }
- jik
- Člen | 146
Zdeno1981 napsal(a):
Ahoj, podle me chyba v makru {control testik} u makra control se vzdy začíná s malým písmenem.
Tak to vypadá, že se to někam hnulo, ale zase se asi ztrácím v malých/velkých písmenech. Laděnka ukazuje do createComponentTestik() a hlásí Class ‚Testik\TestikControl‘ not found. Ten control tedy odkazuje do svého presenteru na funkci createComponentTestik, toto asi jede. Potom, co znamená: Testik\TestikControl – před lomítkem je jméno souboru a za lomítkem jméno třídy? Ať měním písmenka, jak chci, pořád neexistující třída.