ホームページ >データベース >mysql チュートリアル >CodeIgniter で「非オブジェクトのプロパティを取得しようとしています」エラーが発生するのはなぜですか?
CodeIgniter の「非オブジェクトのプロパティを取得しようとしています」エラーについて理解する
CodeIgniter を使用してデータベース レコードを更新しようとすると、 「非オブジェクトのプロパティを取得しようとしています」エラーが発生する場合があります。この問題は、クラスのインスタンスではないオブジェクトのプロパティにアクセスしようとすると発生します。
edit_product_view のコンテキストで、$product オブジェクトを使用してフォームにデータを入力しようとしています。$product オブジェクトは、以下に基づいて取得されます。選択した製品 ID に応じて。ただし、オブジェクト表記 ($product->prodname) を使用してそのプロパティにアクセスしています。
問題の解決: オブジェクト表記と配列表記
CodeIgniter は取得したデータを保存しますオブジェクトではなく配列として。したがって、フォーム フィールドの値が含まれる $product 配列の個々の要素にアクセスするには、配列表記を使用する必要があります。
次の行を
<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>
で置き換えます。
<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>
追加のヒント
以上がCodeIgniter で「非オブジェクトのプロパティを取得しようとしています」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。