CodeIgniter致命错误:在非对象上调用成员函数display_clients()

时间:2014-09-23 12:51:13

标签: php codeigniter

我正在编写一个基本上用数据库做的东西的程序,但是我遇到了一些功能问题,这就是应该做的事情

public function clist() {
$this->load->model('list_model');
$fields = $this->list_model->listcli();
if ($fields === $this->list_model->listcli()) {
    $fieldl = $fields;
    $this->load->view('clientlist');
    $this->clientlist->display_clients($fieldl);
}

}

这会加载看起来像这样的模型:

public function listcli()
{
 $this->db->list_fields('clients');
}

}

然后运行模型函数listcli,以便列出客户端数据库中的所有字段并将值放入$fields然后我将其称为fieldl并加载一个视图显示数据,视图如下所示:

<html>
<body>
<p> sup </p>
<?php

 function display_clients($fieldl)
 {

        ?>
        <html>
            <body>
            <p> sup2 </p>
                <ul>
                <?php
                foreach ($fieldl as $l) {
                ?>
                <li> 
                    <?php echo $l;?>
                </li>
                <?php
                }
    }

然后调用视图中的函数并将数据从$fieldl传递到其中。

但是我收到了错误&#34;在第40行和第34行的/codeigniter/src/application/controllers/clientlist.php中的非对象上调用成员函数display_clients();

第40行是

$this->clientlist->display_clients($fieldl);
你能帮忙吗?拜托,谢谢你。

(我知道之前已经问过这样的问题,但是他们总是对手头的代码非常具体,所以不能帮助我,我对CodeIgniter很新,所以如果你能保持任何答案相对简单我将不胜感激。)

2 个答案:

答案 0 :(得分:0)

为什么不能在控制器中准备列表并将其传递给$data数组进行查看?

$my_list = '<ul>';
foreach ($fieldl as $l) {
$my_list .= '<li>'.$l.'</li>';
}
$my_list .= '</ul>';

$data['my_list'] = $my_list;

然后您可以在$my_list视图中访问它。只需在需要的地方回复它。

编辑: 根据你自己的答案,是 - 确切地说。使用上面的示例,您可以将$data作为第二个参数传递给视图:

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

然后在视图中,您可以$data['my_list']访问$my_list$data['foo']访问$foo等。

答案 1 :(得分:0)

我需要使用第二个参数来将我的数据传递到视图中,而不是我自己的临时解决方案,CI接受一个对象作为CI_Loader :: view()的第二个参数