Stephenalistoun wrote:
> 
> Hey All,
> 
> I'am trying to call a Module from the Controller and I'm keep on getting
> an error stated below:
> 
> Class 'Default_Module_UsersTable' not found in
> C:\wamp\www\ZendCasts\application\controllers\IndexController.php on line
> 16
> 
> //***********************
> //*******Index Controller******
> //***********************
> class IndexController extends Zend_Controller_Action
> {
>     public function indexAction()
>     {
>        $this->view->headTitle('Title - ' , 'PREPEND');
> 
>        $users = new Default_Module_UsersTable();
>     }   
> }
> //***********************
> //*******Module*******
> //***********************
> //require_once 'Zend/Db/Table/Abstract.php';
> class Default_Module_UsersTable extends Zend_Db_Table_Abstract
> {
>     /**
>      * The default table name
>      */
>     protected $_name = 'users';
> 
>     /*public function NewUser()
>     {
>         $params = array(
>             'name' => 'jane doe',
>             'email' => 'j...@doe.com');
>         //$this->users->insert($params);
>     }*/
> }
> //***********************
> //*******Boot Strap*******
> //***********************
> class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
> {
>     /**
>      * Bootstrap autoloader for application resources
>      * 
>      * @return Zend_Application_Module_Autoloader
>      */
>     protected function _initAutoload()
>     {
>         $autoloader = new Zend_Application_Module_Autoloader(array(
>             'namespace' => 'Default',
>             'basePath'  => dirname(__FILE__),
>         ));
>         return $autoloader;
>     }
> 
>     /**
>      * Bootstrap the view doctype
>      * 
>      * @return void
>      */
>     protected function _initDoctype()
>     {
>         $this->bootstrap('view');
>         $view = $this->getResource('view');
>         $view->doctype('XHTML1_STRICT');
>         //$view->addHelperPath('App/View/Helper' , 'App_View_Helper');
>     }
> }
> 
> 

Try this in _initAutoload (this is forfForms also) in main bootstrap:

    $resourceAutoloader = new Zend_Loader_Autoloader_Resource( array(
      'basePath' => realpath(dirname(__FILE__)), 
      'namespace' => '', // 'Default' if you have
resources.frontcontroller.params.prefixDefaultModule = true
      'resourceTypes' => array(
        'form' => array(
          'path' => 'forms',
          'namespace' => 'Form',
        ),
        'model' => array(
          'path' => 'models',
          'namespace' => 'Model'
        )
      )
    ));

If you have Models in each module, put the following code in each module's
bootstrap's _initAutoload:
   $resourceAutoloader = new Zend_Loader_Autoloader_Resource( array(
      'basePath' => realpath(dirname(__FILE__)),
      'namespace' => $modulename,
      'resourceTypes' => array(
        'form' => array(
          'path' => 'forms',
          'namespace' => 'Form',
        ),
        'model' => array(
          'path' => 'models',
          'namespace' => 'Model'
        )
      )
    ));

The model name should be Default_Model_UsersTable (not Module, module is
Default in your case)
Also, if you do not have set
resources.frontcontroller.params.prefixDefaultModule = true, your model
should have no Default in its name (i.e. Model_UsersTable).

Same goes for forms - Form_Login.
Hope it helps. :-) It took me a while to figure it out...
-- 
View this message in context: 
http://n4.nabble.com/Zend-Modules-Calling-a-Module-from-Controller-tp663625p679472.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to