如何根据 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 的一个字段的值验证另一个字段的值? 的相关文章

  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • .htaccess 异常导致主目录出现问题

    这是我的目录结构 localhost or livehost app bootstrap public vendor code demo 这是我的 htaccess
  • PHP 开发相当于 Mongrel/Webrick 吗?

    PHP 开发中是否有与 Rails 开发期间使用 Mongrel Webrick 等效的方法 我通常在端口 3000 上使用 Mongrel 在开发过程中为我的 Rails 应用程序提供服务 我从事 PHP 开发已经有几年了 据我所知 方法
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • 使用 php 在多维数组中按键排序[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中对多维数组进行排序 https stackoverflow com questions 2059255 sorting multidimensional array in php 如何在
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 如何解码 eval( gzinflate( base64_decode(

    我已将此代码注入到我的网站中 如何解码尾随字符串 我需要知道发生了什么以及其背后的代码是什么 这应该输出将被执行的代码eval 我希望这就是您正在寻找的
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • 使用php将数据存储到文本文件中?

    我正在尝试将数据存储在文本文件中 例如使用 php 将数组存储到文本文件中 而不是存储到 mysql 数据库中 例如 这里是要存储在文本文件中的数据 name gt john age gt 25 location gt australia
  • 如何在 OS X 上使用 OpenSSL 1.0.1 编译 PHP 5.5.19

    我已经安装了 OpenSSL 1 0 1j usr local ssl现在我尝试使用此版本的 OpenSSL 编译 PHP 5 5 19 这是我的配置过程 export CFLAGS arch x86 64 export CXXFLAGS
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio

随机推荐

  • 如何在 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 只将当前字段的值发送给验证器 如何让验证者收到所有内