Intereting Posts

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

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

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

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

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

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

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

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

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

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

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

например

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