я получаю сообщение об ошибке при попытке получить свойство не объекта - PullRequest
0 голосов
/ 29 мая 2018

я получаю sql результат в виде массива .. Затем он показывает ошибку типа `

при попытке получить свойство необъекта в контроллере в` $ rate = $ product_det-> sale_rate;

Это поле sale_rate в моей таблице product. Я новичок в 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 голосов
/ 29 мая 2018

Поскольку, очевидно, вам нужны данные только об одном продукте.

Изменение:

$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'];
0 голосов
/ 29 мая 2018

Надеюсь, это поможет вам:

В модели просто замените

$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;
}
0 голосов
/ 29 мая 2018

Вы используете result_array() в своем sql-запросе.

Затем используйте foreach loop, чтобы показать свою запись, как эта

if(!empty($product_det))
    {
       foreach($product_det as $p_det){
        if($rate=="" || $rate==0)
        {
            $rate=$p_det['sale_rate'];
        }
        $amount=$rate*$quantity;
        $cgst_per=$p_det['CGST'];
        $sgst_per=$p_det['SGST'];
        $igst=0;
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...