0

我在登录 .ctp 文件中有这段代码:

<?php echo $this->Form->create('AdmUser', array(
    'class' => 'form-vertical',
    'inputDefaults' => array(
        'label' => false,
        'div' => false,
    ))); ?>

<?php echo $this->Form->input('login', array(
    'placeholder' => 'User')
    );?>

我正在为 cakephp 使用slywalker 的TwitterBootstrap 插件,所以输出是这样的:

<div class="control-group">
     <div class="controls">
          <input name="data[AdmUser][login]" placeholder="User" maxlength="15" type="text" id="AdmUserLogin" required="required">
     </div>
</div>  

我试图在输入标签之前放置一些 html 代码,如下所示:

<div class="control-group">
     <div class="controls">
          <span class="add-on"><i class="icon-user"></i></span>
          <input name="data[AdmUser][login]" placeholder="User" maxlength="15" type="text" id="AdmUserLogin" required="required">
     </div>
</div>

当我尝试使用'before' => '<span class="add-on"><i class="icon-lock"></i></span>'代码时,介于<div class="control-group"><div class="controls">


您是否尝试过插件自述文件中的示例?

https://github.com/slywalker/TwitterBootstrap/blob/master/README.md

我还没有测试过,但插件似乎使用“前置”和“附加”选项来添加这些选项;如果设置了这些选项,FormHelper 会使用此方法在内部生成这些标签;

BootstrapFormHelper::addOn()

4

2 回答 2

1

我已经将我的代码测试到 CakePhp 版本 cakephp-2.6.6。

echo $this->Form->input(
    'login', 
    array(
    'between' =>'<span class="add-on"><i class="icon-lock"></i></span>',
    'after'=>'',
    'placeholder' => 'User'
    )
);

并产生:

<span class="add-on"><i class="icon-lock"></i></span>
<input type="text" id="AdmUserLogin" placeholder="User" name="data[AdmUser][login]">

你有自定义表单助手我认为这就是你得到的原因

<div class="control-group">
     <div class="controls">

输入字段之前的代码和您的“之前”标签不起作用。如果您添加“之间”标签,它将在您的输入之前添加代码,最后您必须将“之后”标签添加为空,因为您不需要在您之后添加额外的 html输入字段。谢谢。

于 2015-11-14T08:11:55.737 回答
0

您是否尝试过插件自述文件中的示例?

https://github.com/slywalker/TwitterBootstrap/blob/master/README.md

我还没有测试过,但似乎插件使用'prepend'和'append'选项来添加这些选项;如果设置了这些选项,FormHelper 会使用此方法在内部生成这些标签;

BootstrapFormHelper::addOn()

于 2013-04-02T21:10:23.157 回答