Попытка получить свойство необъекта - CodeIgniter - PullRequest
21 голосов
/ 03 марта 2011

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

Когда я нажимаю кнопку «Изменить» для конкретной записи (в моем случае это «Продукт»), она переводит меня к edit_product_view, но выдает ошибку «Попытка получить свойство не-объекта» для каждой переменной что я использую в set_values элементов формы.

Используя print_r, я получаю правильный ассоциативный массив, поэтому он передается правильно.

Это отрывок из моего edit_product_view.

<h2><?php echo $heading; ?></h2>
<hr>
<table id="newproduct">
<?php echo form_open('products/edit/'.$product->id); ?>
<tr>
    <td class="label"><?php echo form_label('Name:');?></td>
    <td><?php echo form_input('prodname', set_value('prodname', $product->prodname));?></td>
</tr>
<tr>
    <td class="label"><?php echo form_label('Product Type:');?></td>
    <td><?php echo form_dropdown('ptname_fk', $product_types, set_value('ptname_fk', $product->ptname_fk));?></td>
</tr>

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

Заранее спасибо!

Ответы [ 3 ]

55 голосов
/ 03 марта 2011

Чтобы получить доступ к элементам в массиве, используйте обозначение массива: $product['prodname']

$product->prodname - это обозначение объекта, которое можно использовать только для доступа к атрибутам и методам объекта.

7 голосов
/ 27 июля 2011

Чтобы получить значение:

$query = $this->db->query("YOUR QUERY");

Затем для одного ряда из (в контроллере):

$query1 = $query->row();
$data['product'] = $query1;

В виду, вы можете использовать свой собственный код (код выше)

3 голосов
/ 16 сентября 2015

В моем случае я просматривал серию объектов из файла XML, но некоторые экземпляры явно не были объектами, которые вызывали ошибку.Проверка того, был ли объект пустым, перед его обработкой устранила проблему.

Другими словами, без проверки, был ли объект пустым, скрипт выдает ошибку на любом пустом объекте с ошибкой, как указано ниже.

Попытка получить свойство необъекта

Например:

if (!empty($this->xml_data->thing1->thing2))
{
   foreach ($this->xml_data->thing1->thing2 as $thing)
   {

   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...