CodeIgniter - доступ до змінної $ config перегляду


101

Досить часто мені потрібно отримати доступ до $configзмінних у представленнях. Я знаю, що можу передати їх від контролера до load->view(). Але видається надмірним робити це явно.

Чи є якийсь спосіб або хитрість отримати доступ до $configзмінної з представлень CI, не заважаючи контролерам із запасним кодом?

Відповіді:


194

$this->config->item() працює чудово.

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


приємна корисна відповідь
Yagnesh bhalala

29

Крім того, загальна функція 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
Насправді у представленні $ це стосується CI_Loader, а get_instanc () як завжди завжди посилається на CI_Base ().
Філ Стерджон

8

$this->config->item('config_var') не працював для моєї справи.

Я міг використовувати лише config_item('config_var');для відлуння змінних у представленні


4

Ваш контролер повинен збирати всю інформацію з баз даних, конфігурацій тощо. Існує багато вагомих причин дотримуватися цього. Одна з вагомих причин полягає в тому, що це дозволить вам досить легко змінити джерело цієї інформації і не потрібно вносити жодних змін у свої погляди.


2

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


Я не знаю чому, але з сьогоднішнього дня $ this-> config-> item ('var_name'); більше не працював для мене .. дякую за альтернативний спосіб. просто цікаво .. чи законний цей метод?
dapidmini

2
echo $this->config->config['ur config file'] 

Якщо ваш конфігураційний файл також прийшов до зображення, ви повинні отримати доступ до цього, наприклад, я включаю app.php у папку config, у мене є змінна

$config['50001'] = "your  message"   

Тепер я хочу отримати доступ до свого контролера чи моделі.

Спробуйте виконати два випадки, над якими треба працювати

case1:

$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"

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

Це працює дуже добре майже в кожному місці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.