[SOLVED] My_Controller ? |
[eluser]solid9[/eluser]
Hi guys Is creating My_Controller is good only for extending Native Libraries? Or can I use it as ordinary controller? What's the right way to name the My_Controller file? Thanks in advanced.
[eluser]solid9[/eluser]
This is what I did so far, Code: class My_mother extends CI_Controller And I name the file mother.php But it show some error and the error is, Code: Message: Cannot modify header information - headers already sent by (output started at /home/struhi/public_html/thefml.org.uk/secret/application/controllers/mother.php:13)
[eluser]solid9[/eluser]
I'm trying to implement this, http://philsturgeon.co.uk/blog/2010/02/C...ing-it-DRY
[eluser]qcsites[/eluser]
You should follow the directions exactly in the link exactly. The controller needs to be named MY_Controller in order for it to be extended. You should then return the data you will want to use in controllers you extend from the MY_Controller. So your MY_Controller file name would be MY_Controller.php as shown. Then the extended controllers operate as normal controllers, but for things you need site wide in all controllers, you can put that in the MY_Controller. Stuff like session management, site settings stuff etc.
[eluser]solid9[/eluser]
Thanks dude I did not noticed that. anyway here is the updated class, Code: class MY_Primary extends CI_Controller I also saved as MY_Primary.php And I called it in the URL, Code: http://thefml.org.uk/secret/primary/ also like this, Code: http://thefml.org.uk/secret/primary/index/ and also like this, Code: http://thefml.org.uk/secret/index.php/primary/ But nothing happened. It says, Code: 404 Page Not Found why?
[eluser]solid9[/eluser]
I tried calling it in the URL like this below, Code: http://thefml.org.uk/secret/MY_Primary/index/ Is that the right way to call it in the URL? If yes, then I have error below, Code: Message: Cannot modify header information - headers already sent by (output started at /home/struhi/public_html/thefml.org.uk/secret/application/controllers/MY_Primary.php:19)
[eluser]solid9[/eluser]
Problem solved. Solution, Code: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); I have forgot this part, Code: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
[eluser]CroNiX[/eluser]
You still didn't do it right because you didn't follow the guide exactly, which is important. Its called MY_Controller, not MY_Primary, and it gets put in /application/core/MY_Controller.php Also, you don't call it directly. It is automatically loaded when you call a controller. Its just a way to add methods that will be available to all controllers, that extend MY_Controller. Then, for your own controllers, they extend MY_Controller, instead of CI_Controller. If you follow the guide exactly, it will work. If you alter it, it won't.
[eluser]CroNiX[/eluser]
You will also have problems like you are having with the "cannot modify headers" if you echo from a base controller. That should be done from views.
[eluser]CroNiX[/eluser]
/application/core/MY_Controller.php Code: class MY_Controller extends CI_Controller { now one of your controllers (extends MY_Controller) /application/controllers/something.php Code: class Something extends MY_Controller { View /application/views/some_view.php Code: <?php echo "Message is: $message"; ?> access via url: http://yoursite.com/something/show_message |
Welcome Guest, Not a member yet? Register Sign In |