nenalezena třída nette – AppForm
- pako3
- Člen | 18
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;
}
- pseudo
- Člen | 13
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 | 2666
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)
- vtitl
- Člen | 29
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
Kdyby formuláře nebyly úplně první v dokumentaci, tak neřeknu…a použití v presenteru je tam kupodivu taky .-)