CAKEPHP3输入自动标签

CAKEPHP3输入自动标签,php,cakephp,cakephp-3.0,user-input,Php,Cakephp,Cakephp 3.0,User Input,我的indext.ctp中有一个代码: <?php echo $this->Form->input('full_name'); ?> 我的问题是:我能在全球范围内做到吗?以某种方式覆盖了语言;在自动生成标签时使用ucfirst Cakephp在未提供标签文本时生成标签文本 它使用拐点::人性化查看 我想您可以覆盖默认的帮助器。请记住,输入已弃用,您应该使用控件 然后在AppView.php初始化中加载助手 $this->loadHelper('Form', [

我的indext.ctp中有一个代码:

<?php echo $this->Form->input('full_name'); ?>

我的问题是:我能在全球范围内做到吗?以某种方式覆盖了语言;在自动生成标签时使用ucfirst

Cakephp在未提供标签文本时生成标签文本

它使用拐点::人性化查看

我想您可以覆盖默认的帮助器。请记住,输入已弃用,您应该使用控件

然后在AppView.php初始化中加载助手

$this->loadHelper('Form', [
    'className' => 'MyForm',
]);
因此,当您想要定义自定义标签时,可以使用“标签”选项

助手将使用您的逻辑


我测试了这个行为,它在我的表格中运行

你需要这个!因为当您显式地使用“label”选项时,您不希望助手自动创建它,因为我遗漏了一些东西。我想覆盖它。但是有!如果标签是自动生成的,则不存在替代。或者我误解了什么?是的,我明白你的意思,谢谢。仅当未设置任何内容时,它才会自动生成。换句话说,如果没有!我将始终覆盖标签。再次感谢。
class MyFormHelper extends FormHelper
{

    public function control($fieldName, array $options = [])
    {
        if(!isset($options['label']))
            $options['label'] = // you own code here;
        return parent::control($fieldName, $options);
    }
}
$this->loadHelper('Form', [
    'className' => 'MyForm',
]);
<?php echo $this->Form->input('full_name', ['label'=>'Insert the full name here']); ?>
<?php echo $this->Form->input('full_name'); ?>