2017-02-02 2 views
0

PHP версии 5.3.1 с CodeIgniter 2.0.2Попытки получить имущество не-объект CodeIgniter и Недействительного аргумент для Еогеаспа()

помощь, у меня ошибки, как это:

A PHP Error was encountered 

Severity: Notice 

Message: Trying to get property of non-object and Invalid argument supplied for foreach() 

Filename: controllers/login.php 

Line Number: 20 

контроллер

parent::__construct(); 
    $this->load->model('option_m'); 
    $option = $this->option_m->get_by(array('nama_opsi' => 'store_option')); 
    foreach (unserialize($option->value_opsi) as $key => $val) { 
     $this->data->$key = $val; 
    } 
    $this->template->use_asset()->set_judul('Form Login')->set_css('login'); 

    $this->data->metadata = $this->template->get_metadata(); 
    $this->data->judul = $this->template->get_judul(); 
} 

в возвышенном текст, номер строки 20, но я не уверен:

foreach (unserialize($option->value_opsi) as $key => $val) { 
$this->data->$key = $val; 
+0

в Блистательной тексте Порядковый номер 20: Еогеасп (десериализации ($ опцию-> value_opsi), как $ ключ => $ Вэл) { , но им не уверен, что – Bernando

+2

Возможная дубликата [Invalid аргументу, переданному для Еогеасп()] (http://stackoverflow.com/questions/2630013/invalid-argument-supplied-for-foreach) –

+0

Что такое исходное значение '$ option-> value_opsi'? – Pipe

ответ

0

Попробуйте сохранить unserialize($option->value_opsi) в промежуточной переменной и распечатать ее. Я уверен, что это не формат массива, который может принять foreach.

0

Сначала проверьте, действительно ли параметр $ действителен перед его использованием, иначе вы попытаетесь получить доступ к значениям из недопустимого возврата. Предположим, что ваш запрос возвратил $ option = false, тогда вы попытались получить доступ к полю из него, как $ option-> value, тогда вы получите ту же ошибку.

Я предлагаю вам поставить если заявление перед использованием:

if($option) { foo; bar; ...} 

И использовать десериализируемся только если $ опцию-> value_opsi сериализованного значение.

Надеюсь, это помогло.

Смежные вопросы