Reputation: 4118
Pretty often I need to access $config
variables in views.
I know I can pass them from controller to load->view()
.
But it seems excessive to do it explicitly.
Is there some way or trick to access $config
variable from CI views without
disturbing controllers with spare code?
Upvotes: 111
Views: 155320
Reputation: 666
Example, if you have:
$config['base_url'] = 'www.example.com'
set in your config.php then
echo base_url();
This works very well almost at every place.
/* Edit */
This might work for the latest versions of codeigniter (4 and above).
Upvotes: -1
Reputation: 1081
If you are trying to accessing config variable into controller than use
$this->config->item('{variable name which you define into config}');
If you are trying to accessing the config variable into outside the controller(helper/hooks) then use
$mms = get_instance();
$mms->config->item('{variable which you define into config}');
Upvotes: 0
Reputation: 30766
$this->config->item()
works fine.
For example, if the config file contains $config['foo'] = 'bar';
then $this->config->item('foo') == 'bar'
Upvotes: 213
Reputation: 190
This is how I did it. In config.php
$config['HTML_TITLE'] = "SO TITLE test";
In applications/view/header.php (assuming html code)
<title><?=$this->config->item("HTML_TITLE");?> </title>
Upvotes: 3
Reputation: 11
$config['cricket'] = 'bat';
in config.php file
$this->config->item('cricket')
use this in view
Upvotes: 1
Reputation: 30766
Also, the Common function config_item()
works pretty much everywhere throughout the CodeIgniter instance. Controllers, models, views, libraries, helpers, hooks, whatever.
Upvotes: 31
Reputation: 21
echo $this->config->config['ur config file']
If your config file also come to picture you have to access like this for example I include an app.php in config folder I have a variable
$config['50001'] = "your message"
Now I want access in my controller or model .
Try following two cases one should work
case1:
$msg = $this->config->item('ur config file');
echo $msg['50001']; //out put: "your message";
case2:
$msg = $this->config->item('50001');
echo $msg; //out put: "your message"
Upvotes: 2
Reputation: 81
$this->config->item('config_var')
did not work for my case.
I could only use the config_item('config_var');
to echo variables in the view
Upvotes: 8
Reputation: 4581
Your controller should collect all the information from databases, configs, etc. There are many good reasons to stick to this. One good reason is that this will allow you to change the source of that information quite easily and not have to make any changes to your views.
Upvotes: 4
Reputation: 194
Whenever I need to access config variables I tend to use: $this->config->config['variable_name'];
Upvotes: 2
Reputation: 7482
You can do something like that:
$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
Upvotes: 16