我目前正在使用CakePHP的“自动”字段元素作为我的CRUD表单 我的意思是我正在使用
echo $form->input('fieldname', $options);
生成所有内容的方法。
这会选择正确的元素类型,并将所有内容包装到带有< label>的div中。元件。
现在我有一些不可编辑的字段,但我想让它们显示(所以不会有标签,只是一个跨度,而不是< input>控件,那里有只是一些文字或跨度 我还需要能够随意控制“字段值”的内容。
有没有办法用$ form->输入呢?
我知道我可以简单地为所有这些生成标记,但它看起来很丑陋,而且非常重复。
谢谢!
丹尼尔
答案 0 :(得分:2)
您可以随时将它们保留为输入,但会删除编辑选项。将'readonly' => true
添加到输入参数应该在输入中添加如下内容:readonly="readonly"
。
答案 1 :(得分:1)
怎么样:
$html->tag("span", $form->data["fieldname"]);
如果那太难看了,你可以写自己的帮手:
<?php
class WhateverHelper extends AppHelper {
var $helpers = array('Html');
function whatever($fieldname) {
return $this->Html->tag("span", $form->data[$fieldname]);
}
}
?>
答案 2 :(得分:1)
您不需要(不应该!)触摸核心文件。
您可以根据内置的FormHelper创建自己的FormHelper并覆盖输入法。
这是我如何覆盖HtmlHelper的排序方法来为分页表添加排序方向类:
http://richardathome.com/blog/cakephp-extend-paginatorhelper-indicate-sort-field-and-direction
答案 3 :(得分:1)
你最好这样做:
$form->data["fieldname"]
并用您需要的任何标记包围它。如果需要,可以像Richard建议的那样添加你自己的助手。
但不要改变核心。它只会让你头疼得多。
答案 4 :(得分:0)
最后,我最终修改了CakePHP: - (
我刚添加了执行此操作的选项:
echo $form->input('customer_id', array('type' => 'output', 'value' => 'xxxx' ));
这样做相对微不足道,尽管我宁愿不接触核心文件。
我将details on how to do it添加到他们的错误系统中,看看他们是否会考虑在将来的版本中添加它。
希望这有助于某人!
答案 5 :(得分:0)
echo $ form-&gt; input('something',array('div'=&gt; false,'label'=&gt; false));