当我想更新data时,我收到错误。错误显示是未定义的id_kegiatan并试图获取非对象的属性。我是Codeigniter的新手,无法弄清楚如何解决这个问题
查看
<?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 :(得分:0)
在以下行中:
$q = $this->mkegiatan->get_by_id($id_kegiatan)->row(); //line undfined
$ id_kegiatan未定义且没有值,因此您对get_by_id()的调用不返回任何结果,这意味着您后续尝试从$ q变量访问属性会产生其他错误。
当然,您应该在控制器方法中的某处设置$ id_kegiatan变量,或者作为方法参数传递。