尝试从数据库中获取列值时获取非对象错误的属性

时间:2019-03-25 14:24:14

标签: php database codeigniter model controller

嗨,我正尝试从数据库的预览部分中获取列值,以便通过数据库在网页上获取每个内容。我已经将我的一个表ID与另一个表ID进行了匹配,结果得到了整行并将其保存在变量中,然后尝试从该行中选择一个选择值以显示在我的网页上。 但是,当我尝试获取选择列的值时,在我的页面上出现了提示错误,提示“试图获取非对象的属性”。请帮助我。这是我的代码:-

我的查看页面代码是:-

<ul>
    <li><p> <?= $seller->Name; ?></p></li>
    <li><p> <?= $switch->return_policy; ?> Return Policy</p></li>
    <li><p>Replacement  <?= $switch->replacement; ?> </p></li>
    <li><p>Cash On Delivery <?= $switch->cod; ?></p></li>       
</ul>    

错误显示在此行<li><p> <?= $seller->Name; ?></p></li>

我的控制器代码为:-

public function Preview_Switch($switch_id)
   {
    if($this->session->userdata('seller_username') == "" && $this- 
               >session->userdata('seller_password') == ""){
        return redirect('seller/index');
    }
    else
    {
        $result = $this->sm->Preview_Switch($switch_id);
        $seller_id = $result->seller_id;
        $seller = $this->sm->Get_Seller_Info($seller_id);
        if($result)
        {
             $this->load->view('seller/Work_List/Switch_Preview', 
             ['switch'=>$result, 'seller'=>$seller]);
        }
    }
}

我的模型代码是:-

enter code here
public function Get_Seller_Info($seller_id)
{
$get_seller_info = $this->db->get_where('seller',['Id'=>$seller_id]);
if($get_seller_info->num_rows > 0)
    {
        return $get_seller_info->row();
    }
    else
    {
        return false;
    }
}

该错误仅在卖方表中显示,而我可以从切换表中获取一个值。

2 个答案:

答案 0 :(得分:0)

如果您使用return $get_seller_info->row();而不指定行号,那么您将无法获得预期的结果。

如果确定查询将仅返回一行,请将其更改为return $get_seller_info->row(0);,您将可以使用控制器中的代码并查看而无需进行进一步更改。

如果不确定要返回多少行,请将其更改为return $get_seller_info->result();,然后可以在控制器中迭代或查看以遍历返回的每一行(无论返回多少行),或者通过将视图更改为<?= $seller[0]->Name; ?>

来访问特定行中的数据

答案 1 :(得分:0)

更改:

if($get_seller_info->num_rows > 0)

至:

if($get_seller_info->num_rows() > 0)

参考:
query->num_rows versus query->num_rows()
codeigniter issue with num_rows (possible bug?)

相关问题