CodeIgniter - доступ к переменной $config в представлении
Довольно часто мне нужно получить доступ $config
переменные во взглядах. Я знаю, что могу передать их от контроллера к load->view()
, Но кажется чрезмерным делать это явно.
Есть ли способ или хитрость для доступа $config
переменная из представлений CI, не мешая контроллерам с запасным кодом?
9 ответов
$this->config->item()
работает отлично.
Например, если файл конфигурации содержит $config['foo'] = 'bar';
затем $this->config->item('foo') == 'bar'
Также общая функция config_item()
работает практически везде в экземпляре CodeIgniter. Контроллеры, модели, представления, библиотеки, помощники, хуки, что угодно.
Вы можете сделать что-то подобное:
$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
$this->config->item('config_var')
не работал для моего случая.
Я мог использовать только config_item('config_var');
отображать переменные в представлении
Ваш контроллер должен собирать всю информацию из баз данных, конфигов и т. Д. Есть много веских причин придерживаться этого. Одна веская причина в том, что это позволит вам довольно легко изменить источник этой информации и не будет вносить никаких изменений в ваши взгляды.
Вот как я это сделал. В config.php
$config['HTML_TITLE'] = "SO TITLE test";
В приложениях /view/header.php (в предположении HTML-кода)
<title><?=$this->config->item("HTML_TITLE");?> </title>
Всякий раз, когда мне нужно получить доступ к переменным конфигурации, я обычно использую: $this->config->config['variable_name'];
echo $this->config->config['ur config file']
Если ваш конфигурационный файл также приходит к изображению, вы должны получить доступ к этому, например, я включаю app.php в папку конфигурации, у меня есть переменная
$config['50001'] = "your message"
Теперь я хочу получить доступ к моему контроллеру или модели.
Попробуйте следующие два случая один должен работать
Случай 1:
$msg = $this->config->item('ur config file');
echo $msg['50001']; //out put: "your message";
Вариант 2:
$msg = $this->config->item('50001');
echo $msg; //out put: "your message"
$config['cricket'] = 'bat';
в файле config.php
$this->config->item('cricket')
использовать это ввиду
Если вы пытаетесь получить доступ к переменной конфигурации в контроллер, чем используйте
$this->config->item('{variable name which you define into config}');
Если вы пытаетесь получить доступ к переменной конфигурации за пределами контроллера (помощник / хуки), используйте
$mms = get_instance();
$mms->config->item('{variable which you define into config}');
Например, если у вас есть:
$config['base_url'] = 'www.example.com'
установите в вашем config.php, затем
echo base_url();
Это очень хорошо работает почти в любом месте.