Str*_*rry 4 cakephp cakephp-2.0
所以我理解,如果您根据Model的验证器验证错误消息,CakePHP会自动将错误消息加载到视图中.我正在尝试设置日期保管箱验证,我想控制错误消息显示的位置.
在提交验证表格之前:
<div class="input text required">
<label for="UserEmail">Email</label>
<input name="data[User][email]" maxlength="50" type="text" id="UserEmail">
</div>
Run Code Online (Sandbox Code Playgroud)
验证后,错误显示在此处:
<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>
Run Code Online (Sandbox Code Playgroud)
有可能控制它,我可以把它显示在这里吗?
<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>
Run Code Online (Sandbox Code Playgroud)
或者在这里:
<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>
Run Code Online (Sandbox Code Playgroud)
在视图中:
1)禁用自动错误显示:
echo $this->Form->create('Mymodel', array(
'inputDefaults' => array(
'error' => false
)
));
Run Code Online (Sandbox Code Playgroud)
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')
)
));
Run Code Online (Sandbox Code Playgroud)
以上将errordiv 放在div之前label.您可以按照自己喜欢的顺序重新排列该数组.
| 归档时间: |
|
| 查看次数: |
7270 次 |
| 最近记录: |