CodeIgniter - доступ к переменной $ config в поле зрения

101

Довольно часто мне нужен доступ $config переменным в представлениях. Я знаю, что могу передать их от контроллера к load->view(). Но делать это явно излишне.

Есть ли способ или уловка для доступа к $configпеременной из представлений CI, не нарушая контроллеры запасным кодом?

AlexA
источник

Ответы:

194

$this->config->item() работает отлично.

Например, если файл конфигурации содержит $config['foo'] = 'bar';то$this->config->item('foo') == 'bar'

Фил Стерджен
источник
хороший полезный ответ
Ягнеш бхалала
29

Кроме того, функция Common config_item()работает практически везде в экземпляре CodeIgniter. Контроллеры, модели, представления, библиотеки, помощники, хуки, что угодно.

Фил Стерджен
источник
1
Спасибо за это - у меня возникли проблемы с доступом к значению конфигурации из хука. Для всех остальных это отлично работает.
CashIsClay
1
Но у config_item()него нет защиты от столкновений, которая доступна в$this->config->item()
Ijas Ameenudeen
15

Вы можете сделать что-то подобное:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
Алексей Шеин
источник
3
Фактически в представлении $ this относится к CI_Loader, а get_instance (), как всегда, относится к CI_Base ().
Фил Стерджен,
8

$this->config->item('config_var') не сработало в моем случае.

Я мог использовать только config_item('config_var');для отображения переменных в представлении

user1002232
источник
4

Ваш контроллер должен собирать всю информацию из баз данных, конфигураций и т.д. Есть много веских причин придерживаться этого. Одна из веских причин заключается в том, что это позволит вам довольно легко изменить источник этой информации, и вам не придется вносить какие-либо изменения в свои представления.

Юта_Дэйв
источник
2

Когда мне нужно получить доступ к переменным конфигурации, я обычно использую: $ this-> config-> config ['variable_name'];

Сайт-лаборатория
источник
Не знаю почему, но с сегодняшнего дня $ this-> config-> item ('var_name'); у меня больше не работает .. спасибо за альтернативный способ. просто интересно .. законен ли этот метод?
dapidmini
2
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";

case2:

 $msg = $this->config->item('50001');

 echo $msg;    //out put:  "your message"
krishna_coolsofty
источник
2

Вот как я это сделал. В config.php

$config['HTML_TITLE'] = "SO TITLE test";

В приложениях / view / header.php (при условии, что код HTML)

<title><?=$this->config->item("HTML_TITLE");?> </title>

Пример названия

клыкастая звезда
источник
1

$config['cricket'] = 'bat'; в файле config.php

$this->config->item('cricket') используйте это в виду

Рик
источник
0

Если вы пытаетесь получить доступ к переменной конфигурации в контроллер, чем используйте

$this->config->item('{variable name which you define into config}');

Если вы пытаетесь получить доступ к переменной конфигурации за пределами контроллера (помощник / хуки), используйте

$mms = get_instance();  
$mms->config->item('{variable which you define into config}');
Манну Сарасват
источник
0

Например, если у вас есть:

$config['base_url'] = 'www.example.com'

установите в своем config.php, затем

echo base_url();

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

рахим.нагори
источник