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

Mar*_*sić 22 php mysql codeigniter

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

当我单击特定条目(我的情况下是产品)上的编辑时,它会转到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>
Run Code Online (Sandbox Code Playgroud)

$product 是包含所有键值对的数组,但由于某种原因我无法填写表单.

先感谢您!

Orb*_*bit 56

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

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

  • 找到了解决方法!谢谢!我正在引用as $ product ['0'] - > prodname; (6认同)

小智 7

要获得价值:

$query = $this->db->query("YOUR QUERY");
Run Code Online (Sandbox Code Playgroud)

然后,从(在控制器中)的单行:

$query1 = $query->row();
$data['product'] = $query1;
Run Code Online (Sandbox Code Playgroud)

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