尝试获取非对象的属性 - CodeIgniter

2022-08-30 17:24:53

我正在尝试制作更新表单,这将检索所选特定ID的数据,并填写表单,以便它可以进行更新。

当我在特定条目(在我的情况下是产品)上单击编辑时,它会将我带到,但对于我在表单元素中使用的每个变量,都会显示错误“尝试获取非对象的属性”。edit_product_viewset_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是保存所有键值对的数组,但由于某种原因我无法填写表单。

提前感谢您!


答案 1

要访问数组中的元素,请使用数组表示法:$product['prodname']

$product->prodname是对象表示法,它只能用于访问对象属性和方法。


答案 2

要获取该值,请执行以下操作:

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

然后,对于单行 from(in controller):

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

在视图中,您可以使用自己的代码(上面的代码)


推荐