可能重复:PHP:“注意:未定义的变量”和“通知:未定义的索引”
我正在尝试将会话数据和数据库查询传递给Codeigniter中的视图 . 我的视图文件中出现错误:'消息:未定义的变量:数据'
问题在于$ idea变量 . 变量注册了一个未定义的错误 .
控制器:
public function members() {
if($this->session->userdata('is_logged_in')){
$session = $this->session->all_userdata();
$facebook_id = $data['id'];
$this->load->model('idea');
$idea = $this->idea->get_idea($facebook_id);
//merge the two arrays to get data variable
$data = $session + $idea;
$this->load->view('members', $data);
} else {
redirect('main/login');
}
}
模型:
public function get_idea($facebook_id) {
$data = array(
'id' => '',
'idea' => '',
'facebook_id' => $facebook_id
);
$query = $this->db->get('idea', $facebook_id);
return $query->result_array();
}
以下是我使用过的一些资源:
- Creating foreach loops using Code Igniter controller and view
- codeigniter: pass array from controller to view
- http://blog.mattheufarmer.com/2010/building-a-website-in-codeigniter-part-ii-getting-data-and-using-it/
感谢您的帮助!
2 回答
你可以这样做 -
不就是不 . 这不是你如何合并数组 .
做一个更干净,更周到的方法来做你想做的事:
除此以外,
编辑:
你应该读这个http://ellislab.com/codeigniter/user-guide/general/views.html
无论如何,除非你做一些完全愚蠢的事情,否则你应该能够这样做:
并将其传递给您 . 然后在您的视图中,您可以使用$ session调用会话,并使用$ idea调用 . 为了显示:
然后在我看来:
在视图中,键成为变量,值由这些变量($ data中的键)访问 . 您不会调用$ data,而是调用密钥 .
如果您有任何其他问题,请告诉我 . :)