我想从 get_material()方法访问 unit_id ,该方法从模式 product_modal 返回数据..函数代码..
predicate
我想从上面的函数中使用 unit_id 的第二个函数是
public function get_material() {
$query = $this->db->get('tbl_receivings_items');
return $query->result();
}
我从称为制造**的控制器访问这两个函数,其中两个函数都在** add_product()函数内调用,如下所示
public function get_material_item_unit($p_unit_id){
$sql = "SELECT * FROM tbl_unit WHERE unit_id = ?";
$q = $this->db->query($sql, $p_unit_id);
if($q->num_rows() >0){
return $q->result();
}else{
return null;
}
}
add_product()功能正常工作意味着它将数据发送到db。 我的问题:每次我尝试通过while循环访问unit_id时都会出现未定义属性:stdClass :: $ unit_id 的错误。我将非常感谢你的帮助。
while循环
public function add_product(){
$formRules = array(
array(
'field' => 'prod_name',
'label' => 'Product Name',
'rules' => 'trim|required',
),array(
'field' => 'partner',
'label' => '',
'rules' => 'trim',
),array(
'field' => 'prod_qty',
'label' => 'Quantity To Produce',
'rules' => 'trim|required|greater_than_equal_to[1]',
)
);
$this->form_validation->set_rules($formRules);
if($this->form_validation->run() == TRUE){
$can_be_consumed_value = $this->input->post('can_be_consumed');
$can_be_solded_value = $this->input->post('can_be_sold');
if($can_be_consumed_value == false){
$can_be_consumed_value ="0";
}else{
$can_be_consumed_value ="1";
}
if($can_be_solded_value == false){
$can_be_solded_value ="0";
}else{
$can_be_solded_value ="1";
}
$data =array(
'prod_name' => $this->input->post('prod_name'),
'can_be_consumed' => $can_be_consumed_value,
'can_be_sold' => $can_be_solded_value,
'prod_partner' => $this->input->post('partner'),
'created_by' => $this->input->post('created_by'),
'date_created' => date('Y-m-d'),
'prod_desc' => $this->input->post('prod_desc'),
'prod_qty' =>$this->input->post('prod_qty')
);
$query = $this->product_model->add_product($data);
if($query){
$data['initial_data'] = $this->product_model->get_product_data($query);
$data['material_list'] = $this->product_model->get_material();
$m_list = $this->product_model->get_material();
if($m_list->num_rows() > 0)
{
foreach($m_list->result() as $m){
$data['unit_list'] = $this->product_model->get_material_item_unit($m->unit_id);
}
}
$this->session->set_flashdata('success_msg', 'Product Created Successfully');
$this->load->view('manufacture/manufacture_step_2', $data,'refresh');
}else{
$this->session->set_flashdata('error_msg', 'Sorry! Fail to create product');
redirect('manufacture');
}
}else{
echo '<div class="alert alert-danger error">'.validation_errors().'</div>';
}
}
答案 0 :(得分:0)
我不知道您在PHP中使用的SQL扩展是什么,但通常当您获得查询结果时,这些结果是一组值。
您正在尝试将数据作为对象获取,这就是PHP向您显示此错误的原因,因为var $ m不是对象。
您可以尝试执行var_dump($m)
,您可以看到变量的类型和结构。如果$ m是数组,则必须使用$m['columnName']
来获取值。