Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取错误:尝试获取非对象的属性_Php_Mysql_Codeigniter_Codeigniter 3 - Fatal编程技术网

Php 获取错误:尝试获取非对象的属性

Php 获取错误:尝试获取非对象的属性,php,mysql,codeigniter,codeigniter-3,Php,Mysql,Codeigniter,Codeigniter 3,我是CodeIgniter的初学者。在处理一个小的基本项目时,当我处理列表视图时,我遇到一个错误“试图获取非对象的属性” 请帮帮我! 这里是屏幕截图。 以下是我的看法: <ul id="actions"> <h4>List Actions</h4> <li><a href="<?php echo base_url(); ?>task/add/ <?php echo $list_detail->id; ?>

我是CodeIgniter的初学者。在处理一个小的基本项目时,当我处理列表视图时,我遇到一个错误“试图获取非对象的属性”

请帮帮我! 这里是屏幕截图。

以下是我的看法:

<ul id="actions">
 <h4>List Actions</h4>
 <li><a href="<?php echo base_url(); ?>task/add/  <?php echo $list_detail->id; ?>"> Add Task</a></li>
 <li><a href="<?php echo base_url(); ?>lists/edit/ <?php echo $list_detail->id; ?>"> Edit List</a></li>
 <li><a onclick="return confirm('Are you sure?')" href="<?php echo base_url();?>lists/delete/<?php echo $list_detail->id;?>"> Delete List</a></li></ul>
 <h1><?php echo $list_detail->list_name; ?></h1>
 Created on : <strong><?php echo date("n-j-Y",strtotime($list_detail->create_date)); ?></strong>
 <br/><br/>
 <div style="max-width:500px;"><?php echo $list_detail->list_body; ?></div>
 <!-- <?php //echo print_r($query); ?>
 -->


 <br/><br/>
这是模型

public function get_list($id){

        $query=$this->db->get('lists');
        $this->db->where('id', $id);
        return $query->row();
    }

正在生成此错误,因为您试图访问类对象样式的数组

例:

并以如下方式访问它:

$data->list_details;   // it will generate the error "Trying to get property of non object"

在模型函数上使用
$query->row()
时,然后在控制器上使用

public function get_list($id) {
    $this->db->where('id',$id);
    $query = $this->db->get('lists');
    return $query->row_array();
}
模型函数

public function get_list($id) {
    $this->db->where('id',$id);
    $query = $this->db->get('lists');
    return $query->row();
}
控制器

public function show($id){
    // Gets data where it belongs with that id

    $list_data = $this->model_name->get_list($id);

    $data['id'] = $list_data->id;
    $data['create_date'] = $list_data->create_date;
    $data['list_body'] = $list_data->list_body; 

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

}

在模型函数上使用
$query->row_array();
时,然后在控制器上使用

public function get_list($id) {
    $this->db->where('id',$id);
    $query = $this->db->get('lists');
    return $query->row_array();
}
控制器

public function show($id) {
    // Gets data where it belongs with that id

    $list_data = $this->model_name->get_list($id);

    $data['id'] = $list_data['id'];
    $data['create_date'] = $list_data['create_date'];
    $data['list_body'] = $list_data['list_body']; 

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

}
$results = $this->model_name->get_list();

// Or
//$results[] = $this->model_name->get_list();

$data['list_detail'] = $results;

$this->load->view('someview', $data);
在视图上,您可以访问

<?php echo $id;?>
<?php echo $create_date;?>
<?php echo $list_body;?>
控制器

public function show($id) {
    // Gets data where it belongs with that id

    $list_data = $this->model_name->get_list($id);

    $data['id'] = $list_data['id'];
    $data['create_date'] = $list_data['create_date'];
    $data['list_body'] = $list_data['list_body']; 

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

}
$results = $this->model_name->get_list();

// Or
//$results[] = $this->model_name->get_list();

$data['list_detail'] = $results;

$this->load->view('someview', $data);
看法


查看您的代码后。我认为您的模型函数写错了

您的模型功能必须如下所示

public function get_list($id) {
    $this->db->where('id',$id);
    $query = $this->db->get('lists');
    return $query->row();
}
同样在您的视图中,在打印该值之前,请检查它是否为
!empty($list\u details)
。因此,如果该值不存在,它将不会抛出任何错误


我希望这将对您有所帮助。

您正在从控制器中调用模型函数get_lists()


但是在模型中没有像get_list那样的函数。你需要更改controller中的函数名才能得到get_list()

错误本身已经足够描述性了。我想你应该先访问它嘿,我尝试使用row()来解决它…但它给了我同样的感觉error@Nick我添加了一个答案,希望它能有所帮助。更新了答案嘿,在尝试你的建议后出现了相同的错误。在加载视图和检查是否获得了正确的数据之前,尝试在控制器函数中打印($data);死亡;。嘿,谢谢!兄弟,我错过了那个:)
public function get_list($id) {
    $this->db->where('id',$id);
    $query = $this->db->get('lists');
    return $query->row();
}