加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

CakePHP 3:FormHelper加载之后?

发布时间:2020-12-13 21:58:26 所属栏目:PHP教程 来源:网络整理
导读:有没有办法加载 label在 input之后默认情况下,Cake PHP加载 label在 input之前像这样: PHP代码: ?php echo $this-Form-input('email',['placeholder' = 'Email']); ? 生成代码: label for="email"Email/labelinput name="email" placeholder="Enter your
有没有办法加载< label>在< input>之后默认情况下,Cake PHP加载< label>在< input>之前像这样:

PHP代码:

<?php echo $this->Form->input('email',['placeholder' => 'Email']); ?>

生成代码:

<label for="email">Email</label>
<input name="email" placeholder="Enter your email" id="email" type="email">

但是,当我想这样的时候,我该怎么做:

<input name="email" placeholder="Enter your email" id="email" type="email">
<label for="email">Email</label>

除了黑客之外还有办法解决这个问题吗?

解决方法

模板

您可以使用模板功能,负责此操作的模板是formGroup one,默认情况下为{{label}} {{input}}.

echo $this->Form->input('email',[
    'placeholder' => 'Email','templates' => [
        'formGroup' => '{{input}}{{label}}'
    ]
]);

通过遵循作为类型名称的命名约定,然后是FormGroup,还可以为每个输入类型定义表单组tempaltes.因此对于将是emailFormGroup的电子邮件类型.

echo $this->Form->create(null,[
    'templates' => [
        'emailFormGroup' => '{{input}}{{label}}','textFormGroup' => '{{input}}{{label}}'
        // ...
    ]
]);

这样,您可以轻松地将此选项全局应用于特定类型.

另见Cookbook > Form Helper > Customizing the Templates FormHelper Uses

CSS

当然你也可以使用CSS,那里有桌子

.input.email {
    display: table;
    width: 100%;
}
.input.email input {
    display: table-header-group;
}
.input.email label {
    display: table-footer-group;
}

弹性盒订购

.input.email {
    display: flex;
    flex-flow: column;
}
.input.email input {
    order: 1;
}
.input.email label {
    order: 2;
}

等等…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读