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

如何控制CakePHP表单中错误消息div的显示位置?

发布时间:2020-12-13 17:18:57 所属栏目:PHP教程 来源:网络整理
导读:所以我理解,如果您根据Model的验证器验证错误消息,Cake PHP会自动将错误消息加载到视图中.我正在尝试设置日期保管箱验证,我想控制错误消息显示的位置. 在提交验证表格之前: div class="input text required"label for="UserEmail"Email/labelinput name="da
所以我理解,如果您根据Model的验证器验证错误消息,Cake PHP会自动将错误消息加载到视图中.我正在尝试设置日期保管箱验证,我想控制错误消息显示的位置.

在提交验证表格之前:

<div class="input text required">
<label for="UserEmail">Email</label>
<input name="data[User][email]" maxlength="50" type="text" id="UserEmail">
</div>

验证后,错误显示在此处:

<div class="input text required error">
<label for="UserEmail">Email</label>
<input name="data[User][email]" maxlength="50" type="text" value="" id="UserEmail" class="form-error">
<div class="error-message">An email is required</div>
</div>

有可能控制它,我可以把它显示在这里吗?

<div class="input text required error">
<div class="error-message">An email is required</div>
<label for="UserEmail">Email</label>
<input name="data[User][email]" maxlength="50" type="text" value="" id="UserEmail" class="form-error">
</div>

或者在这里:

<div class="error-message">An email is required</div>
<div class="input text required error">
<label for="UserEmail">Email</label>
<input name="data[User][email]" maxlength="50" type="text" value="" id="UserEmail" class="form-error">
</div>

解决方法

在视图中:

1)禁用自动错误显示:

echo $this->Form->create('Mymodel',array(
    'inputDefaults' => array(
        'error' => false
    )
));

2)从$this-> validationErrors获取当前表单错误

3)通过$this->Form->error()将您自己的标记或Cake的默认标记显示在您喜欢的位置

更新:
我误解了你原来的问题.可以通过create()调用(应用于所有字段)或input()调用(针对单个字段)指定元素的顺序:

echo $this->Form->create('Mymodel',array(
    'inputDefaults' => array(
        'format' => array('before','error','label','between','input','after')
    )
));

以上将在标签div之前放置错误div.您可以按照自己喜欢的顺序重新排列该数组.

(编辑:李大同)

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

    推荐文章
      热点阅读