消息:试图在 Codeigniter 3 中获取非对象的属性
Posted
技术标签:
【中文标题】消息:试图在 Codeigniter 3 中获取非对象的属性【英文标题】:Message: Trying to get property of non-object in Codeigniter3 【发布时间】:2021-10-19 20:25:41 【问题描述】:我想显示每个表的详细数据(作为外键),但不是全部显示。
*我的模型页面中有此代码:
class m_masterinventory extends CI_Model
public function detail_datasset($id = NULL)
$query = $this->db->get_where('inv_inventory', array('id' => $id))->result();
return $query;
*这是我的查看页面
<table class="table table-hover table-bordered table-striped">
<tr>
<th>ID</th>
<td><?= $asset->initial; ?><?= date('yd', $asset->device); ?>
</td>
</tr>
<tr>
<th>Nama</th>
<td><?= $asset->name; ?></td>
</tr>
<tr>
<th>Organization</th>
<td><?= $asset->organization_id; ?></td>
</tr>
<tr>
<th>Brand</th>
<td><?= $asset->brand; ?></td>
</tr>
<tr>
<th>Category</th>
<td><?= $asset->category; ?></td>
</tr>
<tr>
<th>Model</th>
<td><?= $asset->model; ?></td>
</tr>
<tr>
<th>Serial Number</th>
<td><?= $asset->sn; ?></td>
</tr>
<tr>
<th>Status</th>
<td><?= $asset->status; ?></td>
</tr>
*这是我的控制器页面
public function detail_asset($id)
$this->load->model('m_masterinventory');
$asset = $this->m_masterinventory->detail_datasset($id);
$data['asset'] = $asset;
$this->load->view('inv/detail-master-asset', $data);
【问题讨论】:
【参考方案1】:在获取单行时使用row_array()
而不是result();
。
$query = $this->db->get_where('inv_inventory', array('id' => $id))->row_array();
在你看来使用数组$asset['category']
;而不是$asset->category;
【讨论】:
结果是循环的,其他表的数据都是数字。我想以字符的形式合并另一个表中的数据【参考方案2】:$asset = $this->m_masterinventory->detail_datasset($id);
$asset
是一个数组,而不是单个值。
因此,如果这是单行结果,则需要在视图中这样写。
<td><?= $asset[0]['name']; ?></td>
如果结果是一行并且您不想使用数组,这很好,那么您需要在模型中使用row_array()
。
$query = $this->db->get_where('inv_inventory', array('id' => $id))->row_array();
这段时间你可以在你的视图中这样写。
<td><?= $asset['name']; ?></td>
【讨论】:
结果是循环的,其他表的数据都是数字。我想以字符的形式(作为连接表)组合来自另一个表的数据。可以帮忙吗? 提供其他表格数据字段以上是关于消息:试图在 Codeigniter 3 中获取非对象的属性的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - Yajra Datatables 异常消息:试图获取非对象的属性