繁体   English   中英

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

[英]CodeIgniter fatal error: Call to a member function display_clients() on a non-object

我正在编写一个基本上可以处理数据库的程序,但是我在某些功能上遇到了麻烦,这是应该做的

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传递到该视图中。

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

40行是

$this->clientlist->display_clients($fieldl);

你能帮我吗? 谢谢,麻烦您了。

(我知道这种问题以前曾被问过,但它们总是非常针对手头的代码,因此对我没有帮助,对于CodeIgniter来说我真的很陌生,因此,如果您能保持相对简单的答案,我将不胜感激。)

为什么不能在控制器中准备列表,然后通过$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);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM