#php #codeigniter
#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’ не-объекта
вопрос в том, как решить это предупреждение, даже если код работает? может кто-нибудь объяснить, почему появляется это предупреждение?
Комментарии:
1. Куда в вашем коде вы вызываете
->check_inputqty($passdataqty)
? Что вы извлекаете$passdataqty
изinputstokkeluarSedia()
метода? (эти строки не показаны в вашем коде)2. вы получили значение в
$id_sedia
?3. @verjas извините, я забыл ввести переменную, теперь она обновляется в
function inputstokkeluarsedia()
, @DevsiOdedra да, я получаю значение, когда я попытался с помощью var_dump значение равно :string(2) "13"
Ответ №1:
Проблема в $this->db->get()->row()->stock_rincian
Вместо этого используйте:
if($this->db->get()->num_rows()>0){
return True;
}else{
return False;
}
Комментарии:
1. $query в моем операторе if является динамическим, не всегда 0, поэтому мне нужна эта переменная, переданная из
public function inputstokkeluarSedia()
2. проблема в этой строке ‘$this-> db-> get()-> row()-> stock_rincia’ вы не можете использовать stock_rincia после row()-> вы должны получить результат row_array () в переменной, а затем сравнить, используя условие if
3. хорошо, теперь я получаю результат после добавления row_array, спасибо.