CakePHP 3.0.0中的输入包装器div类

时间:2014-06-10 11:56:08

标签: cakephp form-helpers cakephp-3.0

如何更改CakePHP 3.0.0中的输入包装div类。?

我的代码是:

<?= $this->Form->input('mobile',['div'=>['class'=>'col-md-4'],'class'=>'form-control','label'=>false]) ?>

然后它返回:

<div class="input text">
    <input type="text" name="mobile" div="col-md-4" class="form-control" id="mobile">
</div>

我希望输出如下:

<div class="col-md-4">
    <input type="text" name="mobile" class="form-control" id="mobile">
</div>

3 个答案:

答案 0 :(得分:17)

对于CakePHP 3.0版本......

...没有办法只将属性传递给模板。您必须重新定义相应的表单助手模板。

您可以使用例如FormHelper::templates()

全局更改它们
$myTemplates = [
    'inputContainer' => '<div class="col-md-4 input {{type}}{{required}}">{{content}}</div>',
    'inputContainerError' => '<div class="col-md-4 input {{type}}{{required}} error">{{content}}{{error}}</div>'
];
$this->Form->templates($myTemplates);

或仅通过templates选项输入特定内容:

echo $this->Form->input('mobile', [
    'templates' => [
        'inputContainer' => '<div class="col-md-4 input {{type}}{{required}}">{{content}}</div>',
        'inputContainerError' => '<div class="col-md-4 input {{type}}{{required}} error">{{content}}{{error}}</div>'
    ],
    'class' => 'form-control',
    'label' => false
]);

另见

从CakePHP 3.1开始......

...你可以使用所谓的模板变量。您可以将它们放在模板中的任何位置

$myTemplates = [
    'inputContainer' => '<div class="input {{class}} {{type}}{{required}}">{{content}}</div>',
    'inputContainerError' => '<div class="input {{class}} {{type}}{{required}} error">{{content}}{{error}}</div>'
];
$this->Form->templates($myTemplates);

并使用templateVars选项为其定义值

echo $this->Form->input('mobile', [
    'class' => 'form-control',
    'label' => false,
    'templateVars' => [
        'class' => 'col-md-4'
    ]
]);

另见

答案 1 :(得分:1)

此代码适用于我的应用程序。我认为根据你的要求,这将是有用的。

<?php
                echo $this->Form->input(
                'name', [
                    'class' =>  'full-input',
                    'label' =>  'Class Name :',
                    'templates' => [
                        'inputContainer' => '<div class="full-input-wrapper">{{content}}</div>'
                    ]
                ]);
            ?> 

答案 2 :(得分:-1)

<div class="col-md-4">
 <?php echo $this->Form->input('mobile',['id' => 'mobile', 'class' => 'form-control']); ?>
</div