Zend_Form

Pagina: 1
Acties:

Onderwerpen


  • bas_vdl
  • Registratie: Mei 2004
  • Laatst online: 24-04 00:01
Bij het aanmaken van het volgende formulier krijg ik de onder staande error. iemand een idee? heb de foutmelding al even bij google misbruikt maar dat leverder geen resultaat op. ook heb ik op de zend site gezocht: http://framework.zend.com...zend.form.quickstart.html

daar heb ik het voorbeeldje ook vandaan, maar ik snap denk ik iets nog niet helemaal :$

alvast bedankt!

code:
1
2
3
4
5
6
7
8
9
10
11
Warning:  Exception caught by form: ViewHelper decorator cannot render without a registered view object
Stack Trace:
#0 C:\Wampserver\www\portfolio\library\Zend\Form\Element.php(1911): Zend_Form_Decorator_ViewHelper->render('')
#1 C:\Wampserver\www\portfolio\library\Zend\Form\Decorator\FormElements.php(100): Zend_Form_Element->render()
#2 C:\Wampserver\www\portfolio\library\Zend\Form.php(2596): Zend_Form_Decorator_FormElements->render('')
#3 C:\Wampserver\www\portfolio\library\Zend\Form.php(2611): Zend_Form->render()
#4 C:\Wampserver\www\zakelijk.nl\application\views\scripts\register\index.phtml(31): Zend_Form->__toString()
#5 C:\Wampserver\www\portfolio\library\Zend\View.php(107): include('C:\Wampserver\w...')
#6 C:\Wampserver\www\portfolio\library\Zend\View\Abstract.php(787): Zend_View->_run('..\application\...')
#7 C:\Wampserver\www\portfolio\library\Zend\Controller\Action.php(209): Zend_View_Abstract->render('register\index....')
#8 C:\Wampserver\www\zakelijk.nl\application\controllers\RegisterController.php(29): Z in C:\Wampserver\www\portfolio\library\Zend\Form.php on line 2616


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<pre>
<?php

class RegisterController extends Zend_Controller_Action
{

    public function init()
    {
        $this->initView();

        //variablen declaren in header,menu en footer
        $this->view->url = $this->_request->getBaseUrl();
        $this->view->stylesPath = $this->view->url . '/public/styles/';
    }

    public function indexAction()
    {

        $this->view->paginaTitel = 'Zakelijk.nl - Register';
        $this->view->titel = 'Registreren';

        $this->view->form = $this->getForm();

        $this->render();
    }

    public function getForm()
    {
        $form = new Zend_Form();
        $form
            ->setAction('/register/save')
            ->setMethod('post');
        
        // Create and configure username element:
        $username = $form->createElement('text', 'username');
        $username
            ->addValidator('alnum')
            ->addValidator('regex', false, array('/^[a-z]+/'))
            ->addValidator('stringLength', false, array(6, 20))
            ->setRequired(true)
            ->addFilter('StringToLower');
        
        // Create and configure password element:
        $password = $form->createElement('password', 'password');
        $password
            ->addValidator('StringLength', false, array(6))
            ->setRequired(true);
        
        // Add elements to form:
        $form
            ->addElement($username)
            ->addElement($password)
            ->addElement('submit', 'login', array('label' => 'Login'));
        
        return $form;
    }
}

?>


HTML:
1
2
3
4
5
6
7
8
9
10
<?php echo $this->render( 'header.phtml' ); ?>
<?php echo $this->render( 'menu.phtml' ); ?>

<div id="pageContent">
    <h1><?php echo $this->textColor( $this->titel, '#FF0000' ); ?></h1>
</div>

<?php echo $this->form; ?>

<?php echo $this->render( 'footer.phtml' ); ?>

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 12:45

MueR

Admin Tweakers Discord

is niet lief

Ik weet niet waar je $this vandaan haalt. $this is alleen binnen een klasse te gebruiken.

Anyone who gets in between me and my morning coffee should be insecure.


  • Cartman!
  • Registratie: April 2000
  • Niet online
Muer: $this is zn view, dat klopt gewoon dus

TS: volgens mij gaat ie stuk op $this->render(); in je controller, die hoort daar niet want dat doet ie standaard al (iig...als je dispatch gebruikt van je frontcontroller).

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

En wat heb je zelf al geprobeerd en wat lukte daar niet mee? Alleen je code + foutmelding hier dumpen en wachten totdat wij het voor je gaan oplossen is niet de bedoeling. Zie ook PRG Beleid

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • bas_vdl
  • Registratie: Mei 2004
  • Laatst online: 24-04 00:01
Cartman! schreef op donderdag 27 november 2008 @ 18:36:
Muer: $this is zn view, dat klopt gewoon dus

TS: volgens mij gaat ie stuk op $this->render(); in je controller, die hoort daar niet want dat doet ie standaard al (iig...als je dispatch gebruikt van je frontcontroller).
in mijn bootstrap file staat onderaan

$controller->setParam( 'noViewRenderer', true );

$controller->dispatch();

haal ik de regel $this->render(); weg in de RegisterController.php dan krijg ik een lege pagina.

heb al een aantal tutorials geprobeerd zoals ik al vertelde. maar als die niet werken als je het letterlijk overneemt zijn dit soort forums erg handig 8)7

Acties:
  • 0 Henk 'm!

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Je zet nu je view renderer uit en vraagt aan ons waarom je een foutmelding krijgt m.b.t. de view renderer. Als je die weer aan zet is het probleem hoogstwaarschijnlijk opgelost ;).

Acties:
  • 0 Henk 'm!

  • bas_vdl
  • Registratie: Mei 2004
  • Laatst online: 24-04 00:01
RAJH schreef op vrijdag 28 november 2008 @ 08:59:
Je zet nu je view renderer uit en vraagt aan ons waarom je een foutmelding krijgt m.b.t. de view renderer. Als je die weer aan zet is het probleem hoogstwaarschijnlijk opgelost ;).
met die view render krijg ik die error, zonder krijg ik een witte pagina.

ondertussen ben ik even ana het kijken naar http://akrabat.com/2008/02/21/simple-zend_form-example/, nu heb ik een bekende error volgens de reacties eronder maar ik krijg het niet goed. het heeft tem aken met de include path's.

error:
code:
1
2
3
4
5
Warning:  Zend_Loader::include_once(forms\RegisterForm.php) [function.Zend-Loader-include-once]: failed to open stream: No such file or directory in C:\Wampserver\www\portfolio\library\Zend\Loader.php on line 83

Warning:  Zend_Loader::include_once() [function.include]: Failed opening 'forms\RegisterForm.php' for inclusion (include_path='.;.;C:\php5\pear;C:/Wampserver/www/portfolio/library;C:/Wampserver/www/portfolio/application') in C:\Wampserver\www\portfolio\library\Zend\Loader.php on line 83

Fatal error:  Class 'forms_RegisterForm' not found in C:\Wampserver\www\zakelijk.nl\application\controllers\RegisterController.php on line 27


in mijn bootstrap include ik de volgende paden:
PHP:
1
2
3
4
set_include_path( '.' . PATH_SEPARATOR .
    get_include_path() . PATH_SEPARATOR .
    'C:/Wampserver/www/portfolio/library' . PATH_SEPARATOR .
    'C:/Wampserver/www/portfolio/application' );

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Die fout komt voor als je een class forms_RegisterForms oid wilt aanmaken, of tenminste dat neemt de autoloader van ZF aan. Volgens mij moest je de templates map apart aangeven aan ZF's template dinges, doe je dat wel goed?

Heb je overigens ook een eenvoudigere pagina geprobeerd werkend te krijgen?

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Er is dus toch gewoon een pad niet goed gezet in je include_path dus want hij kan ze simpelweg niet vinden. Overigens kan ik me voorstellen dat t komt doordat je de traling slash mist (library -> library/).

Acties:
  • 0 Henk 'm!

  • OxiMoron
  • Registratie: November 2001
  • Laatst online: 08-07 14:27
trailing slash zou niet uit moeten maken, gebruik ik nooit.
Maar application/forms moet natuurlijk wel bestaan met daarin RegisterForm.php met als class forms_RegisterForm

Albert Einstein: A question that sometime drives me hazy: Am I or are the others crazy?


Acties:
  • 0 Henk 'm!

  • Cosca
  • Registratie: Mei 2006
  • Laatst online: 14-11-2023
PHP:
1
2
3
<?php
$form -> setView($this -> view);
?>


Je moet de view zetten voor in je form
Pagina: 1