php – 在Codeigniter视图中有条件语句是否干净?
发布时间:2020-12-13 22:02:02 所属栏目:PHP教程 来源:网络整理
导读:我目前正试图尽可能地将我的观点与我的控制器分开.理想情况下,我想在我的视图中使用最小的 PHP,除了变量名等.这些变量是从控制器传入的. 但在视图中使用IF语句(或类似内容)是否干净? 例如 // Controller $data['status'] = 'pass';$this-load-view("Status
我目前正试图尽可能地将我的观点与我的控制器分开.理想情况下,我想在我的视图中使用最小的
PHP,除了变量名等.这些变量是从控制器传入的.
但在视图中使用IF语句(或类似内容)是否干净? 例如 // Controller $data['status'] = 'pass'; $this->load->view("Status Page",$data); 并.. <!-- View --> <div> <?php if($status === 'pass') { ?> <img src='passIcon.jpg'>Pass <?php } else { ?> <img src='failIcon.jpg'>Fail <?php } ?> </div> 我在SO上找到答案的最接近的事情是 这是针对ASP的,我猜这些原则仍然适用.我可以将条件语句带回控制器,但是然后控制器将创建HTML并将其发送到视图,这也是不对的. 有没有办法避免这种交叉?或者视图中是否总会有PHP片段? 解决方法
从我的角度来看,渲染数据是视图的工作,所以如果你需要条件来真实地显示它,那么一定要做,因为它会避免重复的html代码将它拆分为2个视图并测试var中的控制器.
另外一个好的做法是在视图中使用替代语法,因为它使跟随gode更容易.例如: <!-- View --> <div> <?php if ( $status === 'pass' ) : ?> <img src='passIcon.jpg'>Pass <?php else : ?> <img src='failIcon.jpg'>Fail <?php endif; ?> </div> 然而,再举几个例子你可以在控制器中设置src(我必须承认有时你需要在视图中使用条件): 调节器 $data['src'] = ( $data['status'] === 'pass' ) ? 'passIcon.jpg' : 'failIcon.jpg'; $data['text'] = ( $data['status'] === 'pass' ) ? 'Pass text' : 'Fail text'; $this->load->view("Status Page",$data); 视图 <!-- View --> <div> <img src='<?php echo $src; ?>'><?php echo $text; ?> </div> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |