Подтвердить что ты не робот

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

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

Когда я нажимаю "Редактировать" на конкретной записи ( "Продукт в моем случае" ), он переносит меня в 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 - это массив, содержащий все пары ключ-значение, но по какой-то причине я не могу заполнить форму.

Заранее благодарю вас!

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Другими словами, не проверяя, был ли объект пустым, script будет выходить из строя на любом пустом объекте с ошибкой "Попытка получить свойство не-объекта"

например.

if (!empty($this->xml_data->thing1->thing2))

{

foreach ($this->xml_data->thing1->thing2 as $thing)

{

}

}