Reputation: 4519
I have my normal mvc directory's at codeigniter like:
But I use the wiredesigz "plugin" for hmvc support, so I have this structure:
I have this code at my root controllers folder:
class Core_Test_Controller extends MX_controller
{
public function __construct()
{
parent::__construct();
}
public function getText() {
return "hi";
}
}
And this at the /Modules/TestModule/Controllers:
class InsertController extends MX_Controller
{
public function __construct(){
parent::__construct();
}
function testIt{
$coreTestController = new $this->Core_Test_Controller();
$text = $coreTestController->getText();
print_r($text);
}
}
But I get the error that class Core_Test_Controller is not found. Why can't I acces that controller from another controller? Is this even possible?
Fixed it:
Modules::load('../Core_Test_Controller/')->getText();
Upvotes: 1
Views: 2307
Reputation:
First off lower case for folder names. Only first letter must be upper case for controller names and models etc UCFIRST as explained here http://www.codeigniter.com/user_guide/general/styleguide.html#file-naming HMVC wont pick up CI_Controllers controllers only MX_Controllers
class Core_test_controller extends MX_controller {...}
class Insertcontroller extends MX_Controller {...}
As said here
<?php
/** module and controller names are different, you must include the method name also, including 'index' **/
modules::run('module/controller/method', $params, $...);
/** module and controller names are the same but the method is not 'index' **/
modules::run('module/method', $params, $...);
/** module and controller names are the same and the method is 'index' **/
modules::run('module', $params, $...);
/** Parameters are optional, You may pass any number of parameters. **/
Upvotes: 1