Class ‚Nette\Application\AppForm‘ not found

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ondrakrajcik
Člen | 45
+
0
-

Zdravím,
potřebuju začátečníckou radu. Podle tutoriálu https://www.youtube.com/watch?…
jsem začal dělat kontaktní formulář. Bohužel mně debuger neustále vyhazuje chybu „Class ‚Nette\Application\AppForm‘ not found“

Zdroják je stejný jako ve videu:

*<?php

use Nette\Application\AppForm,
Nette\Forms\Form;

class ContactForm extends AppForm{

public function __construct(Nette\IComponentContainer $parent = NULL, $name = NULL) {
parent::__construct($parent,$name);

$this->buildForm();
}

protected function buildForm(){

$this->getElementPrototype()->setNovalidate(„novalidate“);

$this->addText(„name“,„Vaše jméno“)
->addRule(forms::Filed,„Vyplnte vaše jméno“);
$this->addText(„email“,„Vaš email“)
->addRule(forms::Filed,„Vyplňte váš email.“)
->addRule(forms::Email,„Zadali jste neplatný email.“);

$this->addText(„message“,„Zpráva“)
->addRule(forms::Filed,„Vyplňte zprávu.“);
$this->addSubmit(„ok“,„Odeslat“);
 }

}
?>
*

Nevíte někdo v čem by mohl být problém?

one-two
Člen | 80
+
0
-

Video je staré, třída AppForm se změnila na Nette\Application\UI\Form, stejně tak v konstruktoru bude Nette\ComponentModel\IContainer

ondrakrajcik
Člen | 45
+
0
-

one-two napsal(a):

Video je staré, třída AppForm se změnila na Nette\Application\UI\Form, stejně tak v konstruktoru bude Nette\ComponentModel\IContainer

Dík, ale po přepsání vyhazuje chybu „Class ‚Nette\Application\UI\Form‘ not found“

*<?php

use Nette\Application\UI\Form;

class ContactForm extends Form{

public function __construct(Nette\ComponentModel\IContainer $parent = NULL, $name = NULL) {
parent::__construct($parent,$name);

$this->buildForm();
}

protected function buildForm(){

$this->getElementPrototype()->setNovalidate(„novalidate“);

$this->addText(„name“,„Vaše jméno“)
->addRule(forms::Filed,„Vyplnte vaše jméno“);
$this->addText(„email“,„Vaš email“)
->addRule(forms::Filed,„Vyplňte váš email.“)
->addRule(forms::Email,„Zadali jste neplatný email.“);

$this->addText(„message“,„Zpráva“)
->addRule(forms::Filed,„Vyplňte zprávu.“);
$this->addSubmit(„ok“,„Odeslat“);
 }

}
?>
*

one-two
Člen | 80
+
0
-

co používáš za verzi Nette?

Pavel Macháň
Člen | 282
+
0
-

Házej prosím ten php kód do php tagu (hned vedle ikonky pro odkaz). Takhle se to strašně špatně čte.
Každopádně Nette\Application\UI\Form by měl fungovat od 2.0. Jaké nette používáš?

ondrakrajcik
Člen | 45
+
0
-

Nette jsem stahoval z "":https://nette.org/cs/packages , ale nejsem si jistý zda 2.1.0 nebo 2.0.14, ale řekl bych že spíš 2.1.0 používám

Pavel Macháň
Člen | 282
+
0
-

ondrakrajcik napsal(a):

Nette jsem stahoval z "":https://nette.org/cs/packages , ale nejsem si jistý zda 2.1.0 nebo 2.0.14, ale řekl bych že spíš 2.1.0 používám

Nevidím důvod proč by to nemělo jít, každopádně sem si tam všimnul chyb u pravidel:

->addRule(forms::Email, ...)

má být

->addRule(Form::EMAIL, ...)

a to samé u ostatních pravidel viz Dokumentace

Editoval EIFEL (23. 1. 2014 11:11)

romiix.org
Člen | 343
+
0
-

Tak ti teda asi nefunguje autoloading. Čo takto použiť composer a sandbox? Tam ti to pôjde.

Editoval romiix.org (23. 1. 2014 12:04)

Pavel Macháň
Člen | 282
+
0
-

romiix.org napsal(a):

Tak ti teda asi nefunguje autoloading. Čo takto použiť composer a sandbox? Tam ti to pôjde.

Pokud by mu nešel autoloading tak by se mu to nedostalo ani do té jeho komponenty (nenastartovalo by ani Nette)

Editoval EIFEL (23. 1. 2014 11:23)