我的控制器没有将$data
传递给我,我不知道为什么不这样做。我正在重复使用以前项目中的代码,该代码运行良好,我当然理解数据传递如何工作的想法。但也许我在复制代码时错过了什么?
我在那里输入变量$data['hello']
仅用于测试目的。从输出$hello
可以看出,甚至没有通过。 if
失败并且else
代码正确运行,这意味着正在加载视图文件本身。
控制器:
function users() {
$data['title'] = 'users';
$data['users'] = $this->main_m->get_users();
$data['hello'] = 5;
$this->load->view('users', $data);
}
查看:
<?php
echo $hello;
if ($users->num_rows != 0) {
foreach ($users->result() as $user) {
}
} else {
echo "No users.";
}
输出(删节):
A PHP Error was encountered
Message: Undefined variable: hello
Line Number: 2
A PHP Error was encountered
Message: Undefined variable: users
Line Number: 3
A PHP Error was encountered
Message: Trying to get property of non-object
Line Number: 3
No users.
编辑:根据要求提供更多信息: 型号:
public function get_users($amount = 0, $offset = 0) {
$this->db->from('users');
$this->db->order_by('l_name', 'desc');
if ($amount != 0)
$this->db->limit($amount, $offset);
return $this->db->get();
}
答案 0 :(得分:0)
我总是喜欢这样 将模型更改为
$query = $this->db->get();
return $query->result();
在视野中
if (count($users)> 0) {
foreach ($users as $user) {
echo $user['name'];
}
} else {
echo "No users.";
}
希望这有帮助
此致
iijb
答案 1 :(得分:0)
在将一些数据发送到$data = array();
数组之前,只需编写$data
。
function users() {
$data = array();
$data['title'] = 'users';
$data['users'] = $this->main_m->get_users();
$data['hello'] = 5;
$this->load->view('users', $data);
}
答案 2 :(得分:0)
我认为你可以通过一些简单的var_dump()检查来解决你的问题。
事实上,即使向我们展示您的模型功能也不能证明您获得了真实的数据结果。检查一下。您的代码一目了然,所以我认为这不存在问题。
答案 3 :(得分:0)
有一些非常基本的错误。所以离开那个控制器并进行健全性检查。首先确认您的欢迎视图正在运行。如果是转到欢迎控制器并将其放在索引方法
中 $data['here'] = 'we are here' ;
$this->load->view('welcome_message', $data);
然后在welcome.php视图文件中的某个地方
<?php echo $here ?>
您无需设置此项:$ data = array(); 然而有些人建议它,因为即使您不创建任何数据变量,如果它在视图中调用$ this-&gt; load-&gt; view('welcome_message',$ data);
,也不会出现错误最后我建议看看这个
function users() {
$data['title'] = 'users';
$data['users'] = $this->main_m->get_users();
$data['hello'] = 5;
$this->load->view('users', $data);
}
让我们看到你有一个名为users的方法,返回一个名为users的对象,以及一个名为users的视图 - 这可能会让人感到困惑! :-)