首页 > 解决方案 > codeigniter 将变量传递给同一控制器中的另一个函数得到警告非法字符串,即使变量正确传递

问题描述

我试图将$passdataqty内部带有数组的变量传递public function inputstokkeluarSedia()public function public function check_inputqty($passdataqty)位于 1 个控制器中的所有此函数

使用此代码:

public function inputstokkeluarSedia()
{
 ...
 $passdataqty = array(
   'id_sedia' => $this->input->post('id_sedia'),
   'stock_keluar' => $this->input->post('qtyinput'),
   'jenis_dok' => $this->input->post('jenisdok'),            
  );
$this->check_inputqty($passdataqty);
...
}

public function check_inputqty($passdataqty)
{
 ...
 $id_sedia = $passdataqty['id_sedia'];
 $jenis_dok = $passdataqty['jenis_dok'];
 $stock_keluar = $passdataqty['stock_keluar'];
 $this->db->select('stock_rincian');

 $this->db->from('persediaan_stock_rincian');
 $this->db->where('id_sedia', $id_sedia);
 $this->db->where('jenis_dok', $jenis_dok);
 $query = $this->db->get()->row()->stock_rincian;
    
 if ($stock_keluar > $query) {
      $this->form_validation->set_message('check_inputqty', 'Kuantitas barang yang ingin 
      dikeluarkan melebihi jumlah stok yg ada!');
      return FALSE;
 } else {
      return TRUE;
 }
}

代码运行良好,但我收到此警告。

消息:非法字符串偏移 'id_sedia'

消息:非法字符串偏移 'jenis_dok'

消息:非法字符串偏移 'stock_keluar'

消息:试图获取非对象的属性“stock_rincian”

问题是:即使代码有效,如何解决这个警告?有人可以解释为什么会出现这个警告吗?

标签: phpcodeigniter

解决方案


问题在于$this->db->get()->row()->stock_rincian
相反使用:

if($this->db->get()->num_rows()>0){
    return True;
}else{
    return False;
}

推荐阅读