【问题标题】:CakePHP - radio button not showing error messageCakePHP - 单选按钮不显示错误消息
【发布时间】:2010-05-04 20:06:58
【问题描述】:

使用 CakePHP 表单助手创建单选表单时,我无法显示错误消息。

这就是我现在所拥有的。

     $options=array('active'=>'Active','inactive'=>'Inactive');
     echo $form->input('Status', array(
  'type' => 'radio',
  'id' => 'EntryStatus',
  'name' => 'data[Entry][status]',
  'options' => $options

));

我错过了什么?
我正在使用 CakePHP 1.2.7,这就是我在验证中所拥有的

'status' => array(
    'notempty' => array(
         'rule' => 'notempty',
         'required' => true,
         'message' => 'yo'
         )
    )

尝试了Form helper for creating Radio button in Cakephp 的答案,它给了我一个选择选项表单。

谢谢,
三通

【问题讨论】:

  • 您提供的验证码与之前的代码有何关系?
  • “notempty”是否区分大小写? CakePHP 网站有驼峰式 - 不是小写:book.cakephp.org/view/740/notEmpty
  • 感谢大家的回复。是的,验证似乎有效,如果我没有为状态单选按钮选择任何内容,它就不会插入表单。我遇到的问题是,通常显示在表单下方的“哟”错误消息没有显示出来,应该在表单助手中构建。

标签: cakephp


【解决方案1】:

有同样的问题,我找到了这个,它有效:

http://book.cakephp.org/view/204/Form-Element-Specific-Methods

你需要

if ($form->isFieldError('gender')){
    echo $form->error('gender');
}

... 在您的代码中。这适用于您的字段被命名为性别的情况。

【解决方案2】:

我有同样的问题,我补充说:

<?php echo $form->error('currentStatus');?>

在单选按钮下方,它工作正常。

【讨论】:

    【解决方案3】:

    尝试查看 $form->input('Status' ... (capital 'Status') 与 DB 列名称(可能会或可能不会大写与 'name' => 'data[Entry] [status]'(不是大写的'status')。

    Cake 的表单助手对于插入错误消息很挑剔,因为它无法弄清楚事情发生了什么。

    【讨论】:

      【解决方案4】:

      您是否尝试过使用显式 $form->radio() 方法而不是通用 input() 方法?

      【讨论】:

      • 嗨@Don Kirkby,是的,我也尝试过使用 $form->radio() 方法。基本上,如果未选择单选按钮,则不会提交该表单中的验证工作。但是,通常显示在表单下方的错误消息并未显示出来,而该错误消息正是我想要弄清楚的,因为理论上这应该是表单助手的内置功能。
      【解决方案5】:

      您需要手动添加错误表单助手。

      echo $form->error('status');

      【讨论】:

        【解决方案6】:

        如果是单选按钮,您需要添加错误条件

        <?php 
            $options=array('active'=>'Active','inactive'=>'Inactive');
            echo $form->input('Status', array(
              'type' => 'radio',
              'id' => 'EntryStatus',
              'options' => $options
            )
            );
            if ($form->isFieldError('Status')){
                echo $form->error('Status');
            }
            ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-02
          • 2016-08-13
          • 2021-04-13
          • 1970-01-01
          • 2018-11-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多