“id”未在codeigniter视图中解析为控制器

时间:2017-08-31 06:44:34

标签: codeigniter

查看页面,这里的id无法解析这里显示的一些错误,如消息:未定义的变量:行&&消息:试图获取非对象的属性

<form action="<?php echo site_url('Insert_ctrl/update/'.$row->id.'');?>" method="post">


<?php  
foreach ($g as $row)  
{  

?> 
<label>ID</label>
<input type="text" name="id" value="<?php  echo $row->id;?>"><br>
<label>Name</label>
<input type="text" name="dname" value="<?php  echo $row->student_name;?>"><br>

这是我的控制器页面

    function edit($id)
    {
        $data['g'] ="";           
        $this->load->database();                
        $this->load->model('Inserts_model');  
        $data['g'] =$this->Inserts_model->select_row($id);   
        $this->load->view('update_view', $data); 
    }

这是我的模型页面

public function select_row($id)
{
    $this->db->where('id', $id);
    $query = $this->db->get('student');
    return $query->result_object();
}

这是另一个控制器功能更新,即在表单执行后执行

function update($id)
        {
                if(isset($_POST['update']))
                    {
                        $data = array
                        (
                        'student_name' => $this->input->post('dname'),
                        'student_email' => $this->input->post('demail'),
                        'student_mobile' =>  $this->input->post('dmobile'),
                        'student_address' => $this->input->post('daddress')
                        );
                        $this->Inserts_model->update($data,$id);
                        redirect('Insert_ctrl/index');
                    }
        }  

2 个答案:

答案 0 :(得分:0)

如果您要查询单行,则最好使用row_array()

return $query->row_array();

然后您将能够访问数组索引,如:

echo $row['id'];

答案 1 :(得分:0)

每当您尝试从数据库获取单个记录时,您应该使用row()而不是result()

public function select_row($id)
{
    $this->db->where('id', $id);
    $query = $this->db->get('student');
    return $query->row(); //use row() instead of result
}

您的方法名称为edit,并且您提交了update方法

的表单
<form action="<?php echo site_url('Insert_ctrl/edit/'.$g[0]->id.'');?>" method="post">

如果您使用id传递input,则无需使用URL

发送

您应该尝试使用此$this->uri->segment(3);