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();

Это очень хорошо работает почти в любом месте.

Другие вопросы по тегам