Доступ к переменным данных Codeigniter в функции внутри представления - PullRequest
4 голосов
/ 08 августа 2011

У меня есть функция в одном из моих представлений, и я хочу получить доступ к одной из переменных, доступных для представления, через массив данных CodeIgniter.

Например; в моем контроллере у меня есть это:

$this->load->view('someview', array(
    'info' => 'some info'
));

Теперь, на мой взгляд, у меня есть функция, и я хочу иметь возможность доступа к переменной $info из области действия этой функции.

Возможно ли это?

Ответы [ 3 ]

4 голосов
/ 03 сентября 2012

в вашем контроллере:

    $GLOBALS['var_available_in_function'] = $value;

Ваша функция:

    function get_var() {
       global $var_available_in_function;

       return $var_available_in_function;
    }
3 голосов
/ 08 августа 2011

Я пробовал это, но использование globals на мой взгляд someview.php не работает ..

function func_in_view(){
  global $info;
  print_r ($info); // NULL
}

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

function func_in_view($info){
  print_r ($info); // NULL
}

Я прочитал этот метод $this->load->vars($array)
в http://codeigniter.com/user_guide/libraries/loader.html
, но его цель - просто сделать его доступным для любого файла представления из любой функции этого контроллера.Я попробовал свой код выше global $info;, и он все еще не работает.

Возможно, вам придется обойти эту проблему, передав его вместо параметра.
Попробуйте включить это в someview.php => print "<pre>";print_r($GLOBALS);print "</pre>";, а переменные, переданные через $this->load->view, не включены.

0 голосов
/ 19 августа 2014

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

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

$data['variable1'] = "hello world";
$this->load->view('showpage',$data);

Тогда в представлении showpage.php у вас есть:

global $local_variable = $variable1;

function view_function() {
  global $local_variable;
  echo $local_variable;
}

view_function();

Надеюсь, это поможет!

...