2014-03-27 139 views
0

当我想更新data.error时出错,显示为undefined id_kegiatan并试图获取非对象的属性。我是笨新手,无法真正弄清楚如何解决这个试图获取非对象的属性

视图

<?php echo form_open('admin/kegiatan/tambah_kegiatan','name=form'); ?> 
        <?php echo validation_errors(); ?> 
        <div class="two fields"> 
         <div class="field"> 
          <label>ID Kegiatan</label> 
          <div class="ui small left icon input"> 
           <input type="text" placeholder="ID" name="id_kegiatan" value="<?php echo $id_kegiatan;?>"> 
           <i class="text file outline icon"></i> 
          </div> 
         </div> 
        </div> 

        <div class="fours fields"> 
         <div class="field"> 
          <div class="ui vertical segment"> 
           <div class="date field"> 
            <label>Tanggal</label> 
            <div class="ui small icon input left"> 
             <input type="text" placeholder="xx/xx/xxxx" name="tanggal_kegiatan" value="<?php echo $tanggal_kegiatan;?>"> 
             <i class="calendar icon"></i> 
             </div> 
           </div> 
          </div> 
         </div> 
        </div> 

        <div class="two fields"> 
         <div class="field"> 
          <label>Nama Acara</label> 
          <div class="ui small left icon input"> 
           <input type="text" placeholder="Nama Kegiatan" name="nama_kegiatan" value="<?php echo $nama_kegiatan;?>"> 
           <i class="text file outline icon"></i> 
          </div> 
         </div> 
        </div> 

        <div class="field"> 
         <label>Isi Kegiatan</label> 
         <textarea placeholder="Text" name="content"> 
          <?php echo $content;?> 
         </textarea> 
        </div> 

       <input class="ui small blue submit button" type="submit" value="Save"> 
       <input class="ui small basic button" type="reset" value="Reset"> 
       </form> 

模式

function get_by_id($id_kegiatan) 
    { 
     $this->db->where('id_kegiatan', $id_kegiatan); 
     return $this->db->get($this->tbl_kegiatan); 
    } 

    function update_kegiatan($id_kegiatan, $data) 
    { 
     $this->db->where('id_kegiatan', $id_kegiatan); 
     $this->db->update($this->tbl_kegiatan, $data); 
    } 

控制器

function edit_kegiatan() 
    { 
     //set validation properties 
     $this->form_validation->set_rules('id_kegiatan', 'Id Kegiatan', 'required|numeric'); 
     $this->form_validation->set_rules('tanggal_kegiatan', 'Tanggal', 'required'); 
     $this->form_validation->set_rules('nama_kegiatan', 'Judul Berita', 'required'); 
     $this->form_validation->set_rules('content', 'Content', 'required'); 

     //run validation 
     if ($this->form_validation->run() == FALSE) { 

      $q = $this->mkegiatan->get_by_id($id_kegiatan)->row(); //line undfined 
      $data['id_kegiatan'] = $id_kegiatan; //Trying to get property of non-object 
      $data['tanggal_kegiatan'] = $q->tanggal_kegiatan; //Trying to get property of non-object 
      $data['nama_kegiatan'] = $q->nama_kegiatan; //Trying to get property of non-object 
      $data['content'] = $q->content; //Trying to get property of non-object 

     } else { 
      //save data 
      $id_kegiatan = $this->input->post('id_kegiatan'); 
      $data = array(
       'tanggal_kegiatan' => $this->input->post('tanggal'), 
       'nama_kegiatan' => $this->input->post('nama_kegiatan'), 
       'content' => $this->input->post('content') 
       ); 
      $this->mkegiatan->edit($id_kegiatan,$data); 

      //set user message 
      $data['message'] = '<div class="success">update person success</div>'; 
     } 

     $this->data['orang'] = $this->mlogin->dataPengguna($this->session->userdata('username')); 
     $this->data['contents'] = $this->load->view('admin/kegiatan/edit_kegiatan', '', true); 
     $this->load->view('template/wrapper/admin/wrapper_ukm',$this->data); 
    } 

请帮我该怎么做。谢谢。

回答

0

在下面的行:

$q = $this->mkegiatan->get_by_id($id_kegiatan)->row(); //line undfined 

$ id_kegiatan是未定义的,并具有任何值,为此您的呼叫到get_by_id()返回任何结果,这意味着您的后续尝试访问属性从$ Q变量产生的其他错误。

当然,你应该设置$ id_kegiatan变量在你的控制器方法的某个地方,也许作为一个方法参数传递。

相关问题