[英]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.