Fatal error: Call to a member function setLabel() on a non-object in

<?php

class AuthController extends Zend_Controller_Action
{
    public function indexAction()
    {
        // action body
                $form = new Application_Form_Login();
                $request = $this->getRequest();
                if ($request->isPost())
                {
                    if ($form->isValid($request->getPost()))
                    {
                        
                       if ($this->_process($form->getValues('password')))
                        {
                            $this->_helper->redirector('index', 'index');
                        }
                     }
                 }
             $this->view->form = $form;
    }

    protected function _process($values)
    {
        $adapter=$this->_getAuthAdapter();
        $adapter->setIdentity($values['username']);
        $adapter->setCredential($values['password']);

        $auth = Zend_Auth::getInstance();
        $result = $auth->authenticate($adapter);
        if ($result->isValid())
        {
            $user =$adapter->getResultRowObject();
            $auth->getStorage()->write($user);
            return  true;
        }
        return false;
    }

    protected function _getAuthAdapter()
    {
        $dbAdapter = Zend_Db_Table::getDefaultAdapter();
                $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
                
                $authAdapter->setTableName('utenti')
                            ->setIdentityColumn('username')
                            ->setCredentialColumn('password');
             
                return $authAdapter;
    }      
    public function registrationAction()
    {
        // action body
        $form = new Application_Form_Login();     
/*line 64*/  $form->submit->setLabel('Registration');
        $this->view->form = $form;
        
        if ($this->getRequest()->isPost()) 
        {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) 
            {
                $id = (int)$form->getValue('id');
                $nome = $form->getValue('nome');
                $cognome = $form->getValue('cognome');
                $username = $form->getValue('username');
                $password = $form->getValue('password');
                $email = $form->getValue('email');
                $ruolo = $form->getValue('ruolo');
                $utenti= new Application_Model_DbTable_Utenti();
                $utenti->updateUtenti($id, $nome, $cognome, $username, $password, $email, $ruolo);
                
                $this->_helper->redirector('index');
            }
            else 
            {    $form->populate($formData);    }
        }
        else 
        {
            $id = $this->_getParam('id', 0);
            if ($id > 0) 
            {
                $utenti = new Application_Model_DbTable_Utenti();
                $form->populate($utenti->getUtenti($id));
            }
        }        
    }
}

Tale codice mi da Fatal error: Call to a member function setLabel() on a non-object in C:\xampp\xampp\htdocs\ek-forum\application\controllers\AuthController.php on line 64 :-\

inviato 6 anni fa
lucavalentino
X 0 X
$form->submit->setLabel('Registration');

inserita lì questa riga non ha senso... cancellala.

i label si impostano nel model del form dove probabilmente hai

dichiarato l'elemento "submit"

risposto 6 anni fa
civre
X 0 X

Adesso mi daq un altro errore

Application error

Exception information:

Message: script 'auth/registration.phtml' not found in path (C:/xampp/xampp/htdocs/ek-forum/application/views\scripts/)

risposto 6 anni fa
lucavalentino
X 0 X

Controlla le path per le varie view.

Controlla che registration.phtml sia presente.

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda