Невозможно получить доступ к переменной в модели codeigniter - PullRequest
0 голосов
/ 17 мая 2011

Я пытаюсь получить доступ к набору массивов в модели из контроллера codeigniter, и все происходит странно.

В настоящее время все, что у меня есть в модели, это:

class Pages_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
    }

    var $pages = array(
        'draw', 'stackoverflow', 'words'
    );
}

Я вижу, что массив устанавливается, потому что когда я выполняю

$this->load->model('Pages_model');
die(var_dump(get_object_vars($this->Pages_model)));

Я получаю вывод

array
  'pages' => 
    array
      0 => string 'draw' (length=4)
      1 => string 'stackoverflow' (length=13)
      2 => string 'words' (length=5)

Но когда я пытаюсь получить доступ к самой переменной:

 $this->load->model('Pages_model');
 die(var_dump($this->Pages_model->$pages));

Я получаю ошибку:

Сообщение: неопределенная переменная: страницы

Это не имеет никакого смысла для меня. Что происходит ????

Ответы [ 4 ]

5 голосов
/ 17 мая 2011

Попробуйте $ this-> Pages_model-> pages, без $ before page.

Когда вы делаете это:

$this->Pages_model->$pages

PHP пытается оценить переменную $ pages, которая является нулевой (Pages_model -> null ).

0 голосов
/ 08 декабря 2013

Сделать статический член:

class Model_name {
        static $member='nothing';
}
//and use it with scope resolution operator '::'
$m = new Model_name();
echo $m::member; //output: nothing
$m::member = 'something';
echo $m::member; //output: something
0 голосов
/ 23 октября 2011

Вы можете получить доступ к переменной напрямую, если вы определите ее следующим образом:

class Pages_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
        $this->pages = array(
        'draw', 'stackoverflow', 'words'
    );
    }

}

Тогда вы бы назвали ее по: $this->pages_model->pages

0 голосов
/ 17 мая 2011

Я не уверен, что вы можете напрямую обращаться к переменным в модели. Я считаю, что вы можете только вызывать функции, возможно, создать функцию-получатель для переменной и вернуть переменную. например.

Страница модели

function get_pages() {
   return this->pages;
}

Контроллер

$pages = $this->Pages_model->get_pages();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...