[英]Fatal error: Call to a member function, on a non-object, codeigniter controller
[英]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.