Ответ 1
$this->config->item()
отлично работает.
Например, если файл конфигурации содержит $config['foo'] = 'bar';
, то $this->config->item('foo') == 'bar'
Довольно часто мне нужно получить доступ к переменным $config
в представлениях.
Я знаю, что могу передать их с контроллера на load->view()
.
Но сделать это явно излишне.
Есть ли способ или трюк для доступа к переменной $config
из представлений CI без
тревожные контроллеры с запасным кодом?
$this->config->item()
отлично работает.
Например, если файл конфигурации содержит $config['foo'] = 'bar';
, то $this->config->item('foo') == 'bar'
Кроме того, функция Common 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');
для эха в представлении
Контроллер должен собирать всю информацию из баз данных, конфигов и т.д. Есть много веских причин придерживаться этого. Одна из веских причин заключается в том, что это позволит вам легко и просто изменить источник этой информации и не вносить никаких изменений в ваши представления.
echo $this->config->config['ur config file']
Если ваш файл конфигурации также появляется на картинке, вам нужно получить доступ, как это, например, я включаю app.php в папку конфигурации. У меня есть переменная
$config['50001'] = "your message"
Теперь я хочу получить доступ к контроллеру или модели.
Попробуйте выполнить два случая:
case1:
$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"
Извлечение элементов конфигурации
Чтобы извлечь элемент из файла конфигурации, используйте следующую функцию:
$this- > config- > пункт ( 'item_name');
Где item_name - это индекс массива $config, который вы хотите получить. Например, чтобы выбрать ваш язык, вы сделаете это:
$lang = $this- > config- > item ('language');
Функция возвращает NULL, если элемент, который вы пытаетесь извлечь, не существует.
Если вы используете второй параметр функции $this- > config- > load, чтобы назначить свои элементы конфигурации конкретному индексу, вы можете получить его, указав имя индекса в второй параметр функции $this- > config- > item(). Пример:
// Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"
$this->config->load('blog_settings', TRUE);
// Retrieve a config item named site_name contained within the blog_settings array
$site_name = $this->config->item('site_name', 'blog_settings');
// An alternate way to specify the same item:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];
Настройка элемента конфигурации
Если вы хотите динамически установить элемент конфигурации или изменить существующий, вы можете сделать это, используя:
$this- > config- > set_item ('item_name', 'item_value');
Где item_name - это индекс массива $config, который вы хотите изменить, а item_value - его значение.
Когда мне нужно получить доступ к конфигурационным переменным, я предпочитаю использовать: $this- > config- > config ['variable_name'];
Вот как я это сделал. В config.php
$config['HTML_TITLE'] = "SO TITLE test";
В приложениях /view/header.php(предполагая html-код)
<title><?=$this->config->item("HTML_TITLE");?> </title>
$config['cricket'] = 'bat';
в файле config.php
$this->config->item('cricket')
используйте это в представлении