我试图获取非对象的属性时遇到错误

时间:2018-05-29 04:55:27

标签: php codeigniter

我得到sql结果为数组..然后它给我显示像`

这样的错误
  

尝试在控制器中获取非对象的属性   `$率= $ product_det-> sale_rate;

这个sale_rate是我的表产品中的一个字段。我是PHP的新手。有人可以帮忙吗?

我的模特:

function get_productDet($item)
    {
            $this->db->select('*');
            $this->db->from('product');
            $this->db->where('id',$item);
            $res=$this->db->get()->result_array();
            return $res;

    }

我的控制器:

function product_det()
    {
        $item=$this->input->post('item_id');
        $quantity=$this->input->post('quantity');
        $rate=$this->input->post('rate');
        $amount="";
        $cgst="";
        $sgst="";
        $igst="";
        $product_det=$this->sale_model->get_productDet($item);

        if(!empty($product_det))
        {
            if($rate=="" || $rate==0)
            {
                $rate=$product_det->sale_rate;
            }
            $amount=$rate*$quantity;
            $cgst_per=$product_det->CGST;
            $sgst_per=$product_det->SGST;
            $igst=0;
        }

        echo $rate."-".$amount."-".$cgst."-".$sgst."-".$igst."";

    }

我的javascript函数:

$.ajax({
        url: '<?php echo base_url(); ?>sales/product_det',
        data: ({"item_id":item_id,"quantity":quantity,"rate":rate }),
                    dataType: 'html', 
                    type: 'post',
                    success: function(data) 
                  {
                    alert(data);
                  }
});

3 个答案:

答案 0 :(得分:3)

您在SQL查询中使用<title-title-1>hello</title-title-1> <text-body>i like you</text-body> <p>hehe</p>

然后使用result_array()来显示您的记录

foreach loop

答案 1 :(得分:1)

因为显然你只需要一种产品的细节。

更改:

$res=$this->db->get()->result_array();

$res=$this->db->get()->row_array();

然后,结果是数组而不是对象。要访问返回的元素,请执行以下操作。

更改:

$product_det->sale_rate;
$product_det->CGST;
$product_det->SGST;

$product_det['sale_rate'];
$product_det['CGST']
$product_det['SGST'];

答案 2 :(得分:1)

希望这会对您有所帮助:

在模型中只需替换

$this->db->get()->result_array();

$this->db->get()->row();

您的模型应该是这样的:

function get_productDet($item)
{
      $this->db->select('*');
      $this->db->from('product');
      $this->db->where('id',$item);
      $res = $this->db->get()->row();
      return $res;
}