我正在编写一个基本上用数据库做的东西的程序,但是我遇到了一些功能问题,这就是应该做的事情
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很新,所以如果你能保持任何答案相对简单我将不胜感激。)
答案 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()的第二个参数