首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP错误消息位置

CakePHP错误消息位置
EN

Stack Overflow用户
提问于 2013-01-19 01:56:25
回答 3查看 4K关注 0票数 3

编辑的

CakePHP版本: 2.2.4

当输入验证falis时,CakePHP生成的错误消息位于输入元素之后

代码语言:javascript
复制
<div class="control-group">
    <label class="control-label">Name <span class="required-field">*</span></label>
        <div class="controls">
            <input name="data[User][name]" class="input-xlarge form-error" type="text" value="">
            <div class="error-message">This field cannot be left blank.</div>
            <input type="hidden" name="data[User][public_name]" id="UserPublicName_" value="0">
           <input type="checkbox" name="data[User][public_name]" class="span1" value="1">
        </div>
 </div>

但是我想把它放在我的复选框后面,就像这样:

代码语言:javascript
复制
<div class="control-group">
    <label class="control-label">Name <span class="required-field">*</span></label>
        <div class="controls">
           <input name="data[User][name]" class="input-xlarge form-error" type="text" value="">
           <input type="hidden" name="data[User][public_name]" id="UserPublicName_" value="0">
           <input type="checkbox" name="data[User][public_name]" class="span1" value="1">
           <div class="error-message">This field cannot be left blank.</div>
        </div>
 </div>

我读过FormHelper::input(),但我想不出我是怎么做到的。我想使用inputDefaults

编辑的

我的.ctp

代码语言:javascript
复制
<div class="control-group">
    <label class="control-label">Nanme <span class="required-field">*</span></label>
        <div class="controls">
            <?php
               echo $this->Form->input('name', array(
                   'type' => 'text', 'class' => 'input-xlarge'));
               echo $this->Form->checkbox('public_name', array('class' => 'span1'));
            ?>
        </div>
</div>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-19 17:33:43

其实我已经解决了。我已经添加了'error' => false,并将错误消息定位到了我希望使用$this->Form->error()的地方

我的.ctp

代码语言:javascript
复制
<div class="control-group">
  <label class="control-label">Nanme <span class="required-field">*</span></label>
    <div class="controls">
        <?php
           echo $this->Form->input('name', array(
               'type' => 'text', 'class' => 'input-xlarge', 'error' => false));
           echo $this->Form->checkbox('public_name', array('class' => 'span1'));
           echo $this->Form->error('User.name', null, array('class' => 'error-message'));
        ?>
    </div>
</div>
票数 7
EN

Stack Overflow用户

发布于 2013-01-19 07:22:37

“复选框”输入类型应该已经将错误放在输入后。

但要指定确切的顺序,请在输入的$options数组中使用$options键:

代码语言:javascript
复制
$this->Form->input('fieldname', 
    array('type'=>'checkbox',
          'format'=>array('before', 'input', 'between', 'label', 'after', 'error')
));

只需更改这些数组元素的顺序,以满足您的需要。

票数 2
EN

Stack Overflow用户

发布于 2014-05-14 12:50:53

  1. 在控制器中使用下面的syntex 如果($this->{$this->pageModel}->validates()){ //代码.}{ //您的错误$errors = $this->{$this->pageModel}->validationErrors;$this->set(‘错误’,$errors);}
  2. 在ctp文件中,将下面的代码放在要显示错误消息的代码中。 如果(isset($errors) &&!空($errors‘字段名’)){ echo $errors‘字段名’;}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14410382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档