CodeIgniter数据展示遇解析错误(Parse Error)求助
解决CodeIgniter视图中的「Unexpected 'col'」语法错误
嘿,这问题我太熟了——你遇到的是PHP字符串引号冲突引发的解析错误,咱们一步步拆解解决:
错误根源
你在视图的echo语句里用双引号包裹了整个HTML片段,但HTML标签的属性(比如class="col-lg-4...")也用了双引号。PHP会把第一个"当成字符串的结束标记,后面的col就成了毫无意义的“裸代码”,直接触发syntax error, unexpected 'col'报错。
两种修复方案,选你顺手的来
方案1:转义HTML里的双引号
给HTML属性中的双引号加上反斜杠\,告诉PHP这些引号是字符串的一部分,不是结束标记:
<div class="row clearfix"> <?php foreach ($devices as $de) { echo" <div class=\"col-lg-4 col-md-4 col-sm-6 col-xs-12\"> <div class=\"card\"> <div class=\"header bg-red\" align=\"center\" id=\"bID\"> <h3 class=\"ketersediaan\" id=\"ket\"> Tersedia </h3> </div> <div class=\"body\" align=\"center\"> {$de->device} <br><br><br><br> {$de->capacity} </div> <br> </div> </div>"; } ?> </div>
顺带提一句:把变量$de->device和$de->capacity用大括号{}包起来,能让PHP更清晰地识别变量,避免潜在的解析问题。
方案2:拆分PHP与HTML(更推荐)
这种写法更符合CodeIgniter的视图规范,可读性拉满,也不容易踩引号的坑:
<div class="row clearfix"> <?php foreach ($devices as $de) { ?> <div class="col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="card"> <div class="header bg-red" align="center" id="bID"> <h3 class="ketersediaan" id="ket"> Tersedia </h3> </div> <div class="body" align="center"> <?php echo $de->device; ?> <br><br><br><br> <?php echo $de->capacity; ?> </div> <br> </div> </div> <?php } ?> </div>
直接跳出PHP标签写HTML,需要输出变量时再插回PHP标签,逻辑一目了然。
额外小优化
你的模型cekmeja方法返回的是数据库查询对象,建议在控制器里把它转换成可遍历的对象数组再传给视图:
// 控制器示例代码 $this->load->model('Model_pelayan'); $data['devices'] = $this->Model_pelayan->cekmeja()->result(); // 转换为对象数组 $this->load->view('你的视图文件名', $data);
这样视图里的foreach遍历会更稳定,不会出现意外问题。
内容的提问来源于stack exchange,提问作者Me Myself
相关产品推荐
相关产品推荐

