【问题标题】:Message: Trying to get property of non-object in Codeigniter3消息:试图在 Codeigniter 3 中获取非对象的属性
【发布时间】: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);
}

【问题讨论】:

    标签: php html jquery codeigniter


    【解决方案1】:

    在获取单行时使用row_array() 而不是result();

    $query = $this->db->get_where('inv_inventory', array('id' => $id))->row_array();
    

    在你看来使用数组$asset['category'];而不是$asset-&gt;category;

    【讨论】:

    • 结果是循环的,其他表的数据都是数字。我想以字符的形式合并另一个表中的数据
    【解决方案2】:
    $asset = $this->m_masterinventory->detail_datasset($id);
    

    $asset 是一个数组,而不是单个值。 因此,如果这是单行结果,则需要在视图中这样写。

    &lt;td&gt;&lt;?= $asset[0]['name']; ?&gt;&lt;/td&gt;

    如果结果是一行并且您不想使用数组,这很好,那么您需要在模型中使用row_array()

    $query = $this->db->get_where('inv_inventory', array('id' => $id))->row_array();
    

    这段时间你可以在你的视图中这样写。

    &lt;td&gt;&lt;?= $asset['name']; ?&gt;&lt;/td&gt;

    【讨论】:

    • 结果是循环的,其他表的数据都是数字。我想以字符的形式(作为连接表)组合来自另一个表的数据。可以帮忙吗?
    • 提供其他表格数据字段
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    相关资源
    最近更新 更多