2014-02-07 63 views
2

我试图在数据库中插入数据,但有模型的问题。请帮助 致命错误:\瓦帕\ WWW \ MMZ \应用\控制器\ VendorController.php第9行zend框架1.12 - 致命错误:类'Model_DbTable_Vendor'找不到

应用/ CONFIGS /的application.ini

[production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
appnamespace = "Application" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.frontController.params.displayExceptions = 0 

resources.layout.layout = "layout" 
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" 
[resources.frontController.baseUrl = "/mmz/public"] 
resources.view[] = "" 
resources.view.doctype = "html5" 
resources.view.encoding = "utf-8" 
resources.view.contentType = "text/html;charset=utf-8" 
resources.modules[] = "admin" 

resources.db.adapter = "pdo_mysql" 
resources.db.params.host = "localhost" 
resources.db.params.username = "root" 
resources.db.params.password = "" 
resources.db.params.dbname = "catalog" 
resources.db.isDefaultTableAdapter = true 
resources.db.params.charsert = "utf8" 

[staging : production] 
resources.view[] = 
[testing : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

[development : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
resources.frontController.params.displayExceptions = 1 
:类 'Model_DbTable_Vendor' 不在d发现

bootstrap.php中

<?php 

    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { 

     protected function _initViewHelpers() { 
      $view = new Zend_View(); 
      $view->headTitle('Main Title')->setSeparator(' - '); 
     } 

    } 

应用程序/模型/ DBTABLE/Vendor.php

<?php 

require_once("Zend/Db/Table/Abstract.php"); 

class Model_DbTable_Vendor extends Zend_Db_Table_Abstract { 

    protected $_name = "vendor"; 

    public function init() { 

     $this->getAdapter()->query("SET NAMES 'utf8'"); 
    } 

    public function addVendor($vendor_name) { 
     $this->insert($vendor_name); 
    } 
} 

应用/表格/ Vendor.php

<?php 
class Application_Form_Vendor extends Zend_Form 
{ 
    public function init() 
    { 
     $this->setMethod('post'); 

     $this->addElement('text', 'vendor_name', array(
      'label'  => 'Vendor name:', 
      'required' => true, 
      'filters' => array('StringTrim') 
      // 'validators' => array(
      //  'EmailAddress', 
      //) 
     )); 

     $this->addElement('submit', 'submit', array(
      'ignore' => true, 
      'label' => 'Add new', 
     )); 

     $this->addElement('hash', 'csrf', array(
      'ignore' => true, 
     )); 
    } 
} 

应用/控制器/ VendorController.php

<?php 

class VendorController extends Zend_Controller_Action { 

    protected $vendor; 

    public function init() { 
     /* Initialize action controller here */ 
     $this->vendor = new Model_DbTable_Vendor(); 
    } 

    public function indexAction() { 
     $request = $this->getRequest(); 
     $form = new Application_Form_Vendor(); 
     $this->view->form = $form; 

     if ($this->getRequest()->isPost()) { 
      if ($form->isValid($request->getPost())) { 
       $vendor_name = $form->getValue('vendor_name'); 
       $this->vendor->addVendor($vendor_name); 
      } 
     } 

    } 

} 

应用/视图/脚本/供应商/ index.phtml

Vendor form 
<?php 
$this->form->setAction($this->url()); 
echo $this->form; 
+0

哪里是你的自动加载机安装/配置?如果您没有在自动加载器 – JamesHalsall

+0

不是'Model_'标准路径注册'Model_'命名空间,ZF将不知道在哪里寻找您的Model类?我的猜测是,自动加载器会跳过模型类的路径:尝试使用与模型伪名称空间完全相同的文件夹名称:'application/models/DbTable/Vendor.php' – cypherabe

+0

use Application when从控制器调用模型。 –

回答

1

代替的,

public function init() { 
     /* Initialize action controller here */ 
     $this->vendor = new Model_DbTable_Vendor(); 
    } 

使用,

public function init() { 
     /* Initialize action controller here */ 
     $this->vendor = new Application_Model_DbTable_Vendor(); 
    } 

在.ini文件

resources.frontController.params.displayExceptions = 1 // error reporting on 
+0

OK,但是当我在我的应用改变/模型/ DBTABLE/Vendor.php Model_DbTable_Vendor()来Application_Model_DbTable_Vendor(),并在控制器相同的变化,我有这种情况: 出错 应用程序错误 – zaca45

+0

你有没有按照我的建议,请参阅上面的答案只更改控制器而不是模型文件,并在application.ini文件 –

+0

中打开错误报告并欢迎堆栈溢出,如果您发现答案有帮助,请参阅[接受答案](http: //meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

相关问题