Verstehen des Fehlers „Versuch, eine Eigenschaft eines Nichtobjekts abzurufen“ in CodeIgniter
Beim Versuch, einen Datenbankeintrag mit CodeIgniter zu aktualisieren, müssen Sie Möglicherweise tritt der Fehler „Es wird versucht, die Eigenschaft eines Nicht-Objekts abzurufen“ auf. Dieses Problem tritt auf, wenn versucht wird, auf Eigenschaften eines Objekts zuzugreifen, das keine Instanz einer Klasse ist.
Im Kontext Ihrer edit_product_view versuchen Sie, ein Formular mithilfe des $product-Objekts zu füllen, das basierend abgerufen wird abhängig von der ausgewählten Produkt-ID. Sie greifen jedoch über die Objektnotation ($product->prodname) auf seine Eigenschaften zu.
Lösung des Problems: Objekt- vs. Array-Notation
CodeIgniter speichert abgerufene Daten als Arrays, nicht als Objekte. Daher sollten Sie die Array-Notation verwenden, um auf einzelne Elemente des $product-Arrays zuzugreifen, das die Werte für Ihre Formularfelder enthält.
Ersetzen Sie die folgenden Zeilen:
<code class="php"><?php echo form_input('prodname', set_value('prodname', $product->prodname)); ?> <?php echo form_dropdown('ptname_fk', $product_types, set_value('ptname_fk', $product->ptname_fk)); ?></code>
durch:
<code class="php"><?php echo form_input('prodname', set_value('prodname', $product['prodname'])); ?> <?php echo form_dropdown('ptname_fk', $product_types, set_value('ptname_fk', $product['ptname_fk'])); ?></code>
Zusätzliche Tipps
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in CodeIgniter den Fehler „Versuch, die Eigenschaft eines Nichtobjekts abzurufen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!