nenalezena třída nette – AppForm

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

Zdravím, začínám s Nette a dostal jsem se k jedné chybičce. Myslím, že to bude jen nějaká kravina, ale potřeboval bych nějak navést správným směrem. Debug mi hlásí chybu:
Class ‚AppForm‘ not found

chyba je na tomto řádku:

$form = new AppForm;

Hledal jsem tady řešení, ale nenašel. V AppForm.php je <?php takže to problém není.
Robot loader to nacita, zkousel jsem to nacist i manualne, nepomoho. Temp jsem mazal tez, nepomohlo.
Je to na domacim pc, přes EasyPHP, základ je klasicky Skeleton.
Děkuju za každou radu.

Tady je ještě kus kódu, kde to dělá:

protected function createComponentFormPridej()
    {
        $form = new AppForm;

        $form->addText('nazev','Název produktu')
            ->addRule(Form::FILLED, 'Vyplňte název.');
        $form->addText('spec','Specifikace produktu:');
        $form->addText('pocet','Počet ks:')
            ->addRule(Form::NUMERIC, 'Počet kusů musí být číselný.');
        $form->addText('url','URL s detaily produktu:')
            ->addRule(Form::FILLED, 'URL musí být vyplněno.');

        $form->addText('cena','Cena produktu:')
            ->addRule(Form::FILLED, 'Musíte vyplnit cenu.')
            ->addRule(Form::NUMERIC, 'Cena musí být číselná.');

        $form->addSubmit('odesli','Odeslat');
        $form->addSubmit('storno','Zrušit')->setValidationScope(NULL);

        $form->OnSubmit[] = callback($this, 'processFormPridej');

        $this->template->form = $form;
        return $form;
    }
Mikulas Dite
Člen | 756
+
0
-

Nepoužíváš namespace verzi?

toka
Člen | 253
+
0
-

Mikulas Dite napsal(a):

Nepoužíváš namespace verzi?

To mne také jako jediné napadá. Dál akorát nechápu tuto konstrukci:

	...
	$this->template->form = $form;
return $form;
	...
pako3
Člen | 18
+
0
-

Dál akorát nechápu tuto konstrukci:
>

	...
	$this->template->form = $form;
return $form;
	...

ano to je blbost, už jsem zkoušel všechno možné…

pako3
Člen | 18
+
0
-

to je ono! Namespace verze… díky moc :)

pseudo
Člen | 13
+
0
-

Zdravím, dovolím si oživit téma.
Mám absolutně totožný problém. Class ‚AppForm‘ not found jsem vyřešil přepsáním

$form = new AppForm;

na

$form = new Nette\Application\AppForm;

nicméně mi furt dělají paseku pravidla

$form->addText('text', 'Úkol', 60, 100)
            ->addRule(Form::FILLED, 'Musíte vyplnit text!');

v laděnce vyhazuje pro změnu Class ‚Form‘ not found found. Celý problém tkví pravděpodobně v tom, že v namespaces furt docela tápu. Nicméně jsem si řekl, že když už jsem se pustil do „Studia“ nette, tak to vemu z gruntu i s php 5.3

Šaman
Člen | 2640
+
0
-

Předpokládám, že by to mělo být takto

<?php
$form->addText('text', 'Úkol', 60, 100)
	->addRule(Nette\Forms\Form::FILLED, 'Musíte vyplnit text!');
?>

nebo na začátek souboru přidat

<?php
use \Nette\Forms;

.
.
.
// a pak psat normalne Form:
$form->addText('text', 'Úkol', 60, 100)
	->addRule(Form::FILLED, 'Musíte vyplnit text!');

?>

Editoval Šaman (19. 5. 2010 14:54)

pseudo
Člen | 13
+
0
-

Samozřejmě… Ach jaj, asi ještě nejsem po oslavě maturit úplně střízlivej, protože neumím číst.. Kde jsem došel k tomu, že to je Nette\Form\Form netuším :-)

díky

vtitl
Člen | 29
+
0
-

Ahoj,
napíši to sem, protože zůstává totožné téma. Mám kód (tutoriál Blog):

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


class HomepagePresenter extends BasePresenter
{

    public function renderDefault()
    {
        $this->template->posts = PostsModel::fetchAll();
    }

    public function createComponentCommentForm($name)
    {
        $form = new AppForm($this, $name);
        $form->addText('author', 'Jméno')
                ->addRule(AppForm::FILLED, 'To se neumíš ani podepsat?!');
    }

Laděnka vyhazuje chybu: Class ‚Nette\Application\AppForm‘ not found

Zkoušel jsem promazat temp. Připsat use Nette\Application\AppForm; do boostrap.php.
Ale nepomohlo to.

Používám verzi pro PHP 5.3.x s namespaces.

Tušíte v čem může být problém?

Díky za rady
V.

22
Člen | 1478
+
0
-

tvůj problém.. že nečteš dokumentaci??

bojovyletoun
Člen | 667
+
0
-

Tohle bych dal červeným písmem do FAQ a do dokumentace bych dal přešist FAQ

22
Člen | 1478
+
0
-

Kdyby formuláře nebyly úplně první v dokumentaci, tak neřeknu…a použití v presenteru je tam kupodivu taky .-)