gpt4 book ai didi

CakePHP 3.x 复选框格式问题

转载 作者:行者123 更新时间:2023-12-02 18:34:16 26 4
gpt4 key购买 nike

这对你们中的一些人来说似乎是显而易见的,但我真的很难找到一个直接的答案。我通常会通过 google 进行搜索,并阅读 CakePHP 手册和 API 来获取以下问题的答案:

创建输入时,以下代码创建以下输出:

// in the view
echo $this->Form->input('notes');

// resultant html
<div class="input textarea">
<label for="notes">Notes</label>
<textarea id="notes" rows="5" name="notes"></textarea>
</div>

注意:这在大多数输入类型中都是一致的;而且因为它是一致的,所以非常适合格式化。

但是,带有复选框:

//In the view
echo $this->Form->input('ticket_required',
['type' => 'checkbox']
);

// resultant HTML
<div class="input checkbox">
<input type="hidden" value="0" name="ticket_required">
<label for="ticket-required">
<input id="ticket-required" type="checkbox" value="1" name="ticket_required">
Ticket Required</label>
</div>

[注意:我理解隐藏字段的需要/愿望]

现在..当然简单地想要与所有其他标准输入相同的格式方法不是一个不常见的要求吗?

我的问题 - 如何让 CakePHP 创建一个复选框元素,如下所示:

// desired HTML
<div class="input checkbox">
<input type="hidden" value="0" name="ticket_required">
<label for="ticket-required">
Ticket Required</label>
<input id="ticket-required" type="checkbox" value="1" name="ticket_required">
</div>

需要明确的是:可见元素的顺序与其他生成的元素相同(输入之前的标签,并且全部包含在包装 div 中)。

请注意..我已经尝试过 'nestedInput' => false 选项。这实际上完全摆脱了 div 中的复选框输入。

我不明白为什么不这样做......但即使是这样,我也无法理解为什么这对于文档来说不是一个明显的问题。

哦好吧..希望有人可以帮助我。

提前致谢。

瑞克

最佳答案

我本以为 nestedInput 会起作用,但即使它起作用,您也不希望将其添加到您在整个网站上创建的每个输入中。

CakePHP 3 使用string templates构建表单控件。 You can modify them to suit your needs .

默认情况下,复选框使用 nestingLabel 模板,因此如果您想停止嵌套所有输入,可以更改模板。

// src/View/AppView.php

$this->loadView('Form', [
templates => [
'nestingLabel' => '<label{{attrs}}>{{text}}</label>{{hidden}}{{input}}'
],
// [More helper default config overrides][2]..
])

为了更好地控制你的助手,你可以 create your own扩展了核心助手之一。

关于CakePHP 3.x 复选框格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34055976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com