目前,我使用具有页眉,正文和页脚结构的<table>
在单个元素中渲染我的所有分页结果。渲染样式非常像电子表格,这个元素可以处理多个控制器的分页结果。
我现在需要支持分页结果的可配置渲染样式。两种主要样式是电子表格和pinterest.com样式(通过pinterest我指的是不同长度的垂直列)。
我正在寻找关于如何使用CakePHP 2.2视图功能实现此问题的答案。块,主题和嵌套视图。因此,尽可能多的代码是干的,配置的部分仅应用不同的样式。
在每个数位板单元格中呈现值的代码,记录标题以及类似的详细信息都应该与将其呈现为表格或pinterest(或者您称之为该样式)的代码分开。“ p>
Cake中的每个方法似乎都存在局限性。有什么方法可以解决以下问题?
wrapping
呈现的数据。 CakePHP方法最适合的是什么?答案 0 :(得分:1)
我最近不得不使用无序的定义列表列表。在保持代码DRY的同时执行此操作的关键是使用元素。元素是生活在Views / Elements
文件夹中的ctp文件在我的index.ctp中,我将表更改为ul标记,将tr标记更改为li标记,并调用元素来处理呈现dl。使用数组将对象及其类型传递给元素,其余的可以使用css
完成index.ctp:
<ul><?php
foreach ($blobs as $blob){
echo $this->Html->tag('li',$this->element('dl',array('blob'=>$blob,'type'=>'Blob')));
}
?></ul>
dl.ctp:
<dl class="<?php echo $type;?>"><?php
foreach ($blob[$type] as $key => $v){
echo $this->Html->tag('dt',$key);
echo $this->Html->tag('dd',$v);
}
?></dl>
答案 1 :(得分:0)
您最好的选择可能是使用CSS;你会惊讶于你能用它做什么。您甚至可以将表格从矩形布局“翻转”到垂直布局(例如,在移动屏幕上),这似乎与您想要的一样。