2014-09-25 67 views
0

我正在尝试构建一个注册和登录过程,我怎么对Zend进行新的操作我无法实例化一个模型类: application/models/users.php class Users extends Zend_Db_Table_Abstract {我不能在zend框架中实例化一个模型1.12

protected $_name = 'users'; 

}

在我的引导

我执行自动加载这样

应用程序/引导

保护功能_initAutoload()

{ 
    //Add autoloader empty namespace 
    require_once 'Zend/Loader/Autoloader.php'; 
    $autoLoader = Zend_Loader_Autoloader::getInstance(); 
    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
           'basePath' => APPLICATION_PATH, 
           'namespace'  => '', 
           'resourceTypes' => array(
              'form' => array(
                'path' => 'forms/', 
                'namespace' => 'Form_' 
                ), 
              'model' => array(
                'path' => 'models/', 
                'namespace' => 'Model_' 
                ) 


              ) 
            ) 
           ); 





    //Return it so that it can be stored by the bootstrap 
    return $autoLoader; 
} 

我控制器上我有这个

公共职能的indexAction() {

 $frmuser = new Application_Form_Contact; 






    $users = new Application_Model_Users; 





    $this->view->form = $frmuser; 

     // action body 



    } 

我有一个应用程序\表工作正常形式\ contact.php

class Application_Form_Contact extends Zend_Form

{

public function init() 


{ 




     $this->setMethod('post'); 



     /* Form Elements & Other Definitions Here ... */ 


    $this->addElement('text', 'username',array('filters' => array('StringTrim'), 'required' => true,'label' => 'Enter a Username:', 'validators' => array 

     (array('StringLength', false, array(2, 50))))); 


    $this->addElement('text', 'firstname',array('filters' => array('StringTrim'), 'required' => true,'label' => 'Enter your Firstname:', 'validators' => 
     array(array('StringLength', false, array(2, 50))))); 

    $this->addElement('text', lastname, array('filters' => array('StringTrim'), 'required' => true,'label' => 'Enter your Lastname:', 'validators' => array 

      (array('StringLength', false, array(2, 50))))); 

    $this->addElement('text', 'email', array('filters' => array('StringTrim'), 'required' => true,'label' => 'Enter your Email:', 'validators' => array 

      ('EmailAddress', array 

( 'StringLength',假,阵列(2,50)))));

$this->addElement('text', 'emailagain', array('filters' => array('StringTrim'), 'required' => true,'label' => 'Confirm your Email:', 'validators' =>  

     array('EmailAddress', array('StringLength', false, array(2, 50))))); 

    $this->addElement('password', 'password', array('filters' => array('StringTrim'), 'required' => true,'label' => 'Enter a password:', 'validators' =>  

     array(array('StringLength', false, array(2, 50))))); 

    $this->addElement('password', 'passwordagain', array('filters' => array('StringTrim'), 'required' => true,'label' => 'Confirm your password:',  

     'validators'=> array(array('StringLength', false, array(2, 50))))); 


    $this->addElement('submit', 'contact'); 
    $this->view->form = $form; 


} 

}

如果我注释掉$用户=新Application_Model_Users形式表现不错,但如果未加注释, 指着Internet Explorer浏览器的URL会显示如下代码:

class Users extends Zend_Db_Table_Abstract {protected $ _name ='users'; }

+0

我只是跟着你的脚步Indrasinh Bihola因为我总是以前没有,但我有一个HTTP 500错误在我的浏览器的时候我打电话给网址实例化类的控制器。 – fexio 2014-09-28 11:21:26

回答

0

定义模型的最简单方法是使用zftool

,或者你可以使你的应用程序这样的变化,使模型的工作:

应用程序\型号\ DBTABLE \ users.php

class Application_Model_DbTable_Users extends Zend_Db_Table_Abstract { 

    protected $_name = 'users'; 

} 

在你的控制器现在你能访问这样的:Zend框架文档中提供

$users = new Application_Model_DbTable_Users(); 

进一步了解详细:

请仔细阅读,找出最完美的方式实现它:

Zend Framework 1.12 Documentation