我正在尝试使用get_where来获取所有者等于登录用户的所有数据库记录的列表.
这是我在我的控制器中的功能;
function files()
{
$owner = $this->auth->get_user();
$this->db->get_where('files', array('owner =' => '$owner'))->result();
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我有以下几点;
<?php foreach($query->result() as $row): ?>
<span><?=$row->name?></span>
<?php endforeach; ?>
Run Code Online (Sandbox Code Playgroud)
当我尝试访问视图时,我收到致命错误:在第1行的/views/account/files.php中的非对象上调用成员函数result().
想知道是否有人对这可能是什么有任何想法?
谢谢
Kus*_*alP 20
CodeIgniter是一个基于MVC原则的框架.因此,您通常会将应用程序逻辑,数据抽象和"输出"分离到各自的区域以供CodeIgniter使用.在这种情况下:控制器,模型和视图.
仅供参考,您通常应将"数据"代码作为模型函数,在本例中为get_where功能.我强烈建议您阅读提供的用户指南以了解CodeIgniter,它应该掌握大部分步骤.请参阅:目录(右上).
TL; DR
要解决您的问题,您需要确保将控制器变量传递到视图:
function files()
{
$owner = $this->auth->get_user();
$data['files'] = $this->db->get_where('files', array('owner =' => '$owner'))->result();
$this->load->view('name_of_my_view', $data);
}
Run Code Online (Sandbox Code Playgroud)
然后确保在视图中使用正确的变量:
<?php foreach($files as $row): ?>
<span><?=$row['name']; ?></span>
<?php endforeach; ?>
Run Code Online (Sandbox Code Playgroud)