CodeIgniter 3加载主视图报错:CI_Loader对象无法转为字符串
解决CodeIgniter 3中视图加载错误及位置问题
错误原因分析
你遇到的「Object of class CI_Loader could not be converted to string」错误,还有视图跑到页面顶部的问题,根源都是同一个:
- CodeIgniter的
$this->load->view()方法默认直接输出视图内容,而不是返回字符串。你把这个方法的返回值(其实是CI_Loader类的对象)赋值给$data['utama'],之后在视图里echo $utama的时候,PHP就会尝试把对象转成字符串,自然就报错了。 - 同时因为默认直接输出,
v_list的内容会在v_index加载之前就被打印出来,所以它会显示在页面最顶部,而不是你期望的居中位置。
解决方案
只需要给load->view()加上第三个参数TRUE,让它返回视图的字符串内容,而不是直接输出:
修改你的控制器代码:
if($this->session->userdata('logged_in')){ // 第三个参数TRUE让视图返回字符串,而不是直接输出 $data['utama'] = $this->load->view('spvcoll/v_list', '', TRUE); $data['judul'] = 'List Assign'; $this->load->view('v_index',$data); }else{ redirect('c_index'); }
这样修改后:
$data['utama']会拿到v_list视图的HTML字符串,在v_index里echo $utama就不会再报错了。v_list的内容会被插入到你echo $utama的位置,就能正常居中显示了。
内容的提问来源于stack exchange,提问作者Yohanes Erwin
相关产品推荐
相关产品推荐

