php - 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”
问题是:即使代码有效,如何解决这个警告?有人可以解释为什么会出现这个警告吗?
解决方案
问题在于$this->db->get()->row()->stock_rincian
相反使用:
if($this->db->get()->num_rows()>0){
return True;
}else{
return False;
}
推荐阅读
- ios - 如何识别来自 UITableView 的 UITableViewCell 中多个按钮的点击 - Swift 4
- c# - Azure 持久函数错误“当前未注册任何活动函数!”
- c++ - 如何在 OpenGL 窗口中选择对象?
- ios - Xcode General 选项卡中的“Embedded Binaries”和 Build Phases 选项卡中的“Embeded Frameworks”有什么区别?
- html - CSS flexbox 两列
- rendering - GitHub 页面存储库链接到自定义域,但内容未呈现
- ios - UIContextualAction 的标题未显示完整的文本
- google-chrome - 使用浏览器提供的语音 BotFramework 时如何更改默认语言
- python - Python:在 3d 矩阵中沿一个轴查找最大值,使非最大值为零
- r - 用于数据帧的 R SQLDF PIVOT