![]() |
Load controller from another controller - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5) +--- Forum: Best Practices (https://forum.codeigniter.com/forumdisplay.php?fid=12) +--- Thread: Load controller from another controller (/showthread.php?tid=73898) Pages:
1
2
|
Load controller from another controller - HarrysR - 06-20-2019 Hello, I was wondering if it's possible to load a controller through another controller. As i've searched the internet i found some articles that people mentioned that this is "not a working practice for MVC pattern". The reason i want to achieve such a thing is for situations like: e.g.: Let's say i want to get something from the db and place in header or footer (analytics scripts, footer copyrights text etc..) and in order to have cleaner "view" files i want to create some controllers (sth like "common/header", "common/footer" etc.) and be able to load them in the other controllers. Any ideas / suggestions on that? Thanks RE: Load controller from another controller - Wouter60 - 06-20-2019 Did you think of using a library for that? Or create a MY_Controller.php in the application/core folder. Write a method to generate a common set of views or even different sets of views. Let all your controllers (which are classes) extend the MY_Controller's class. Like that, you can use "common" methods in all your controllers. RE: Load controller from another controller - InsiteFX - 06-20-2019 If you use the HMVC it allows controllers to load other controllers. codeigniter-modular-extensions-hmvc RE: Load controller from another controller - HarrysR - 06-20-2019 (06-20-2019, 12:46 PM)Wouter60 Wrote: Did you think of using a library for that? Or create a MY_Controller.php in the application/core folder. Write a method to generate a common set of views or even different sets of views. I've tried this method and yeas it works! But i see a lot of people suggest not to do such thing like extending controllers in core folder. That's why i thought to ask for an alternative (in case there is one)! RE: Load controller from another controller - HarrysR - 06-20-2019 (06-20-2019, 12:47 PM)InsiteFX Wrote: If you use the HMVC it allows controllers to load other controllers. I've seen it and i'll use it as it looks like, but i was wondering if there was any other alternatives! Thanks though for pointing the right direction! RE: Load controller from another controller - Wouter60 - 06-20-2019 Quote:But i see a lot of people suggest not to do such thing like extending controllers in core folder. These people are probably trying to keep you away from modifying the system/core files. But the application/core folder isn't forbidden ground if you want to use a MY_Controller or MY_Model etc. RE: Load controller from another controller - mladoux - 06-20-2019 WiredDesigns needs to be patched to work with current codeigniter installs. This is the skeleton I created for myself that I use: https://github.com/mladoux/ci-skeleton It has HVMC and a custom autoloader mod so you can name your controller extensions whatever you want ( not just MY_Controller ). RE: Load controller from another controller - hc-innov - 06-21-2019 You can do that (but I think library and real MY_controller are better): I Have a directory 'application/font_controller' with a file called Font Front.php PHP Code: <?php PHP Code: include_once (__DIR__.'/../Front_controller/Front.php'); RE: Load controller from another controller - lucasrohers - 06-21-2019 The correct way to do this is to have a global Model being loaded by autoload, and there you create a function that will perform the insertion of your header and footer, you can also send a parameter and use as embedding views. public function loadLayout($view = null, $data) { //Load your data here $this->load->view('header', $data); $this->load->view($view, $data); $this->load->view('footer', $data); } RE: Load controller from another controller - albertleao - 06-21-2019 Use a library or a model. |