错误:非对象的属性

时间:2018-07-17 10:08:39

标签: php sql model-view-controller

我知道那里有很多答案
但这在我对Controller和Model进行分页时发生在我身上
更改后内容将不会显示

  

严重性:通知

     

消息:试图获取非对象的属性“ iklan”

     

文件名:views / EditIklan.php

     

行号:21

这是视图

<body>
<form action ="<?php echo base_url('iklan/edit_ads_process/');?><?php echo $id_ads ?>" method="post" enctype="multipart/form-data">
    <select name="client" id="client">
        <option>Pilih Client</option>
        <?php foreach($client as $c) {?>
        <option value="<?php echo $c->id_client?>"><?php echo $c->nama_client?></option>
        <?php }?>       
    </select><br><br>
    <select name="size" id="size">
        <option>Pilih Ukuran</option>
        <?php foreach($size as $s) {?>
        <option value="<?php echo $s->id_size?>"><?php echo $s->size_ads?></option>
        <?php }?>       
    </select><br><br>
    <input type="file" name="ads" id="preview_gambar"><br><br>
    <img src="<?php echo base_url();?>upload_iklan/<?php echo $ads->iklan;?>" id="gambar_nodin" width="200" /><br>
    <input type="submit" value="SUBMIT"><br><br>
</form>
<a href="<?php echo base_url();?>">Kembali</a>

.......
这是我分页之前的控制器

public function index()
{
    $data['list']=$this->iklan_model->show_iklan();
    json_encode($data);
    $this->load->view('data',$data);
}

这是分页后的控制器

public function index()
{
    $this->load->database();
    $data['list']=$this->iklan_model->show_iklan();
    json_encode($data);
    $this->load->library('pagination');
    $config = array();
    $config["base_url"] = base_url();
    $config["total_rows"] = $this->iklan_model->record_count();
    $config["per_page"] = 10;
    $config["uri_segment"] = 3;

    $this->pagination->initialize($config);

    $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    $data["list"] = $this->iklan_model->
        fetch_countries($config["per_page"], $page);
    $data["links"] = $this->pagination->create_links();

    $this->load->view('data',$data);
}

......

我在分页后在模型上添加了此功能

public function record_count() {
    return $this->db->count_all("advertisement");
}

public function fetch_countries($limit, $start) {
    $this->db->limit($limit, $start);
    $this->db->join('client', 'advertisement.id_client= client.id_client','inner');
    $this->db->join('size', 'advertisement.id_size= size.id_size','inner');
    $query = $this->db->get("advertisement");

    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $data[] = $row;
        }
        return $data;
    }
    return false;

}

1 个答案:

答案 0 :(得分:0)

您说的是第21行,但是粘贴的代码只有19行。

也就是说,我可以看到它被称为:

<?php echo $ads->iklan;?>

iklan是属性,$ ads是(假定是)对象。

发生错误是因为$ads不是对象。试试这个:

var_dump($ads); exit

这将告诉您变量实际是什么。

可能是数组?在这种情况下,您可以尝试:

$ads['iklan']