CodeIgniter - доступ к переменной $config в представлении
Довольно часто мне нужно получить доступ к переменным $config
в представлениях.
Я знаю, что могу передать их от контроллера к load->view()
.
Но мне кажется чрезмерным делать это явно.
Есть ли какой-нибудь способ или трюк для доступа к переменной $config
из представлений CI, не
нарушая работу контроллеров с запасным кодом?
9 answers
$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');
для отображения переменных в представлении
Ваш контроллер должен собирать всю информацию из баз данных, конфигураций и т.д. Есть много веских причин придерживаться этого. Одна из веских причин заключается в том, что это позволит вам довольно легко изменить источник этой информации и не вносить никаких изменений в свои представления.
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"
Всякий раз, когда мне нужно получить доступ к переменным конфигурации, я обычно использую: $this->config->config['имя переменной'];
$config['cricket'] = 'bat';
в config.php файл
$this->config->item('cricket')
используйте это в представлении