如何根据 Zend_Form 的一个字段的值验证另一个字段的值?

2024-02-08

我正在尝试向字段添加自定义验证器。它应该考虑另一个字段的值。例如。字段 A 最多应为 B+50%。

我做了一个类实现Zend_Validate_Interface,但显然 Zend Form 只将当前字段的值发送给验证器。如何让验证者收到所有内容?


你打电话时isValid on a Zend_Form它将传递您传递给该方法的所有数据

$form->isValid(array('a' => 1, 'b' => 2));

您的自定义验证器将收到整个数组原始值。

验证器示例

class My_Validator_TwoVals implements Zend_Validate_Interface
{
    public function getMessages()
    {
        return array();
    }
    public function isValid($value)
    {
        print_r(func_get_args());
    }
}

表格示例

$f = new Zend_Form;
$a = $f->createElement('Text', 'a');
$b = $f->createElement('Text', 'b');
$b->addPrefixPath('My_Validator', '.', 'validate');
$b->addValidator('TwoVals');
$f->addElements(array($a, $b));

$f->isValid(array('a' => 1, 'b' => 2));

Output

Array
(
    [0] => 2
    [1] => Array
        (
            [a] => 1
            [b] => 2
        )
)

正如你所看到的,还有第二个参数传递给isValid,这是 $context.其中包含剩余的值。

An 选择是将要匹配的第二个元素作为选项传递给验证器,例如

class My_Validator_TwoVals implements Zend_Validate_Interface
{
    protected $a;
    public function getMessages()
    {
        return array();
    }
    public function isValid($value)
    {
        var_dump($this->a->getValue());
    }
    public function __construct(Zend_Form_Element $a)
    {
        $this->a = $a;
    }
}

Setup

$f = new Zend_Form;
$a = $f->createElement('Text', 'a');
$b = $f->createElement('Text', 'b');
$b->addPrefixPath('My_Validator', '.', 'validate');
$b->addValidator('TwoVals', false, array($a));
$f->addElements(array($a, $b));

$f->isValid(array('a' => 1, 'b' => 2));

然后将打印int(1)。正如您所看到的,我们通过表单元素的 API 获取该值,因此您为验证器和过滤器配置的任何内容都将被应用,例如这不是原始值。您还可以将其设置为其他值等。

还可以看看Zend_Validate_Identical了解 ZF 如何实现对其他表单元素的检查:

  • http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Validate/Identical.php http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Validate/Identical.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 Zend_Form 的一个字段的值验证另一个字段的值? 的相关文章

  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records
  • 收到警告“标头不能包含多个标头,检测到新行”

    我正在用 oops 进行编码 以便用 PHP 上传图像 但是提交图片后却出现警告 标题不能包含多个标题 检测到新行 下面是我的函数 它给出了错误 public function ft redirect query if REQUEST UR
  • 自定义帖子类型的 WordPress 自定义字段

    过去有几个人出现过这个问题 但他们的问题的解决方案对我来说不起作用 我已经尝试了很多 在 WordPress 中 我创建了 3 种自定义帖子类型 1 代表 视频 新闻 和 音乐 每个内容都发布到自己的页面 我想添加自定义字段 这样我就可以为
  • Laravel - 急切加载 Eloquent 模型的方法(而不是关系)

    就像我们可以急切加载 Eloquent 模型的关系一样 有没有办法急切加载不是 Eloquent 模型的关系方法的方法 例如 我有一个 Eloquent 模型GradeReport它有以下方法 public function totalSc
  • PHP - 警告:strpos() [function.strpos]: 空分隔符是什么意思?

    警告 strpos function strpos 空分隔符是什么意思 我有这个 if strpos 039 text false text str replace 039 text 猜测一下 我会说 text是一个空字符串 感谢马克指出细
  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 带 url 参数的 Laravel post 路由

    我面临着幼虫路由的大墙 我似乎找不到解决方案 我在视图模板中有此表单
  • Composer 无法获取 github

    今天 我尝试通过运行来安装 Laravelcomposer create project laravel laravel 5 1 myproject prefer dist我收到此错误 Could not fetch https api g
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 使用 yum 和 pear 安装 php-soap 均失败

    我正在尝试在 Centos 6 4 服务器上安装 PHP 的 SOAP 扩展 我对包管理器 从 CLI 安装包并在 PHP 中配置它们相当不熟悉 我相当有能力管理 php ini 和其他 PHP 配置文件 soap ini 等 我尝试使用以
  • php date_parse("2010 年 2 月") 给出日期 == 1

    当没有日期时 我将其称为 date parse 中的错误 d date parse Feb 2010 会给 d day 1 请参阅对此的评论date parse 手册页 http php net manual en function dat
  • 在 PHP 中接受带有小数点和千位分隔符的国际数字

    对于用户可以输入能量值来计算相应费用的在线计算器 我需要 PHP 脚本来接受各种用户输入 200 万又四分之一焦耳 的值可以输入为 2000000 25 默认表示法 2 000 000 25 带千位分隔符 2000000 25 逗号作为小数
  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 为什么这评估为 true

    为什么这评估结果为真
  • 点击 %40 变为 %2540

    当单击包含 符号的链接时 该网址给我 40 这就是我想要的 但是一旦我点击它 一秒钟后它就在我点击后变成了 2540 单击是在电子邮件内 然后定向到网站 其中 40 更改为 2540 我怎样才能让它停止变化 它现在得到这样的参数 email
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja

随机推荐

  • 如何在 R 中的主热图旁边添加额外的单列热图

    我有以下脚本 library gplots mydata lt mtcars mydata nr lt nrow mydata mydata newval lt data frame row names rownames mydata ne
  • 使用 CSVhelper C# 合并具有不同标头的 CSV 文件

    尝试使用 CSVhelper 将目录中的多个 csv 文件合并为一个 csv 文件时 目录中有 50 个 csv 文件 在这 50 个文件中有两组文件结构 一组有 7 列 一组有 6 列 每个文件都有完全相同的前 5 个标题 但是根据文件的
  • laravel 资源控制器/路线和模型

    所以如果你做类似的事情 artisan make model TurboClown artisan make controller TurboClownController r model TurboClown 所以此时可以添加如下内容 R
  • 如何将两个分数相加?

    在 C 中如何添加两个分数 如下所示 11 6 3 4 31 12 然后你会如何简化答案 周五晚上 无聊袭来 导致 Fraction 类的运算符超载 无法保证设计的严谨性 它的工作原理是这样的 Fraction left 1 2 Fract
  • 我如何在 UiButton 操作中传递任何类型的参数?

    我想通过按钮操作传递一个 url 因为我有 10 个按钮 它们是通过代码动态创建的 单击后会为每个相应的按钮分配一个特定的 url 这是我的代码 NSString linkUrl NSString stringWithFormat Allr
  • SWI-Prolog - 单元测试库 plunit - 如何使用 forall 选项?

    对于我的词法分析器 分词器 https en wikipedia org wiki Lexical analysis Tokenization 全部ASCII https en wikipedia org wiki ASCII 7 bit
  • 将多个原型单元加载到 UITableView 中

    我目前有一个 UITableView 其中包含 2 行自定义单元格 我最近在故事板中添加了第二个原型单元 并尝试将其添加到 UITableView 中 但没有成功 我的 cellForRowAtIndexPAth 方法如下 func tab
  • SKTexture 和 UIImage 的缩放属性

    是否有任何原因导致SKTexture似乎忽略了 scale构建图像时通过textureWithImage 我有一个可用的图像资源 电子邮件受保护 cdn cgi l email protection 当我尝试先创建 UIImage 时创建纹
  • 如何从 Django 视图函数中读取文本文件?

    我的视图函数之一中有以下代码 def results request data file open data txt r data data file read context rooms data return render reques
  • Android ioctl - root权限和使用

    我正在 Android 应用程序中开发一些路由功能 并且需要访问 ioctl 由于使用 ioctl 的应用程序需要 root 权限才能运行 因此我能够调用它们的唯一方法是链接一个单独的可执行文件并从 Java 调用它Runtime getR
  • Opencv canny 边缘检测在 Android 应用程序上崩溃

    我是 OpenCV 的新手 当我尝试应用 Canny 检测器时 我的应用程序崩溃了 我看过另一篇相同的文章 但我尝试过 但没有任何结果 我使用Android Studio 3 0 OpenCV 3 2 0 我的手机是Android 6 0
  • Node.js 检查文件是否存在

    如何检查文件是否存在 考虑直接打开或读取文件 以避免竞争条件 const fs require fs fs open foo txt r err fd gt fs readFile foo txt err data gt if err da
  • html5视频和音频缓存问题

    我编写了一个自定义媒体预加载器 它使用了一系列XMLHttpRequests在显示我的内容之前加载大量媒体ng2 app 利益相关者要求所有媒体都下载在full在使用该应用程序之前 private loadFile media any re
  • 单击提交按钮时,我的 ASPX 文件中的第二个模态不会发布

    我有一个 ASPX 文件 其中包含两个模式 myModal 和 addModal 和一个 gridview 其中包含调用每个模式的按钮 打开并单击 提交 按钮时 我遇到了第二个模式的问题 因为它不会触发回发 只是第二个有问题 如果我更改 A
  • 将边框颜色设置为 glyphicon

    我想为 glyphicon 字体添加边框 例如 glyphicon heart它有一个红色边框 颜色与背景相同 我怎样才能做到这一点 border color red 没有完成这项工作 不会显示边框 基本上 glyphicon 图标是字体
  • jpql中如何设置in-clause的集合项?

    JPA 2 0 是否有可能为 jpql query 中的子句设置集合 我正在使用 EclipseLink 下一个例子失败了 TypedQuery
  • Google 表格“您无权调用appendRow”

    function myFunction var url https api github com users chaimf90 repos var response UrlFetchApp fetch url var json respon
  • 如何为 EditText 添加下划线

    我在 Android Studio 的 EditText 中遇到一些需要下划线的问题 这就是我正在寻找的 这只是一张照片 不是我的真实文字 但我真的不知道有什么财产可以做到这一点 我现在的代码非常简单 只是 正常 的
  • php-win.exe - 应用程序无法正确启动(0xc00007b)

    我使用的是 Windows 7 64 位 我已经安装了 WampServer 3 0 6 x64 最新版本 我已经安装了Visual C 2012 更新 4 https www microsoft com en us download de
  • 如何根据 Zend_Form 的一个字段的值验证另一个字段的值?

    我正在尝试向字段添加自定义验证器 它应该考虑另一个字段的值 例如 字段 A 最多应为 B 50 我做了一个类实现Zend Validate Interface 但显然 Zend Form 只将当前字段的值发送给验证器 如何让验证者收到所有内