- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过特殊验证事件来验证数据完整性。我的 Phalcon\Mvc\Collection 模型使用一些 Phalcon\Mvc\Model\Validator 验证器实现了validation()方法。在我的 Controller 中,我保存()该模型。如果保存操作失败,我尝试通过模型的 getMessages() 方法输出错误消息。换句话说,我遵循文档 http://docs.phalconphp.com/en/latest/reference/odm.html 中提供的示例。
但是,我收到一个错误,指出 getMessages() 方法不存在。我的 Phalcon 版本是 0.7.0。我检查了API http://docs.phalconphp.com/en/latest/api/Phalcon_Mvc_Collection.html ,并且它没有显示 getMessages() 方法。我还对 Phalcon\Mvc\Collection 类进行了反射测试,结果证实了这一观察结果。
文档还指出我们可以使用 Phalcon\Mvc\Collection\Validator 实现我们自己的验证器。但是,这个类似乎不存在。
所以,我的问题是:
感谢您的宝贵时间。
最佳答案
你说得对,实现中缺少 getMessages() 方法。现在您可以将其添加到您的模型中,同时它已正式添加到 C 类中:
<?php
class Users extends Phalcon\Mvc\Collection
{
public function getMessages()
{
return $this->_errorMessages;
}
}
1- 如何显示验证结果的错误消息?检查上面
2-如何创建自定义验证器?
验证器是一个继承自“Phalcon\Mvc\Model\Validator”并实现“Phalcon\Mvc\Model\ValidatorInterface”的类:
<?php
use Phalcon\Mvc\Model\Validator,
Phalcon\Mvc\Model\ValidatorInterface;
class HashValidator extends Validator implements ValidatorInterface
{
public function validate($record)
{
$fieldName = $this->getOption('field');
if (!preg_match('/[a-z]+/', $fieldName) {
$this->appendMessage("The hash is not valid", $fieldName, "Hash");
return false;
}
return true;
}
}
如果您不想重复使用验证器,您可以简单地向模型添加验证规则:
<?php
use Phalcon\Mvc\Model\Message;
class Users extends Phalcon\Mvc\Collection
{
public function validation()
{
if (!preg_match('/[a-z]+/', $this->password) {
$this->_errorMessages[] = new Message("The hash is not valid", "password", "Hash");
return false;
}
return true;
}
public function getMessages()
{
return $this->_errorMessages;
}
}
3- Phalcon\Mvc\Model\Validator\Uniqueness 验证器 NOSQL 兼容吗?该验证器仅与 SQL 模型兼容,但是,您可以通过以下方式创建验证器来使用 NoSQL 集合:
<?php
use Phalcon\Mvc\Model\Validator,
Phalcon\Mvc\Model\ValidatorInterface;
class UniqueValidator extends Validator implements ValidatorInterface
{
public function validate($record)
{
$field = $this->getOption('field');
if ($record->count(array("field" => $record->readAttribute($field)))) {
$this->appendMessage("The ".$field." must be unique", $fieldName, "Unique");
return false;
}
return true;
}
}
关于Phalcon ODM 验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13873094/
我需要 MongoDB 中的自动递增字段。我找到了 documentation on how to use a counter-collection in MongoDB . 但是,我的值 id 不是
我需要 MongoDB 中的自动递增字段。我找到了 documentation on how to use a counter-collection in MongoDB . 但是,我的值 id 不是
我在 ZF2 + Doctrine ODM + doctrine-mongodb-odm-module 上有应用,但找不到如何使用这些模块创建分页的示例。有没有这样的例子? 最佳答案 试试看这里Doc
我正在尝试通过特殊验证事件来验证数据完整性。我的 Phalcon\Mvc\Collection 模型使用一些 Phalcon\Mvc\Model\Validator 验证器实现了validation(
我有一个已经变成表格的 Doctrine mongodb 文档。该文档有两个 emebedOne 文档,它们也在表单中。正在验证主文档,但未验证嵌入文档。我正在使用自定义断言,但我认为这并不重要。 文
我目前正在处理嵌入文档,我需要从父文档中获取帐户信息以生成 URL。如何从嵌入文档的 getter 访问父文档? /** @文档 */ 类用户 { //... /** @EmbedOne(target
我想在我的项目中使用 doctrine ODM,我想为我的每个客户建立一个单独的数据库。我希望能够通过我的 API 在运行时管理客户端。我现在的问题是: 当我设置 doctrine ODM 时,我必须
我们正在使用 Symfony2/DoctrineOdm/MongoDB,当我们这样做时: if ($doc.referenceOne != null) { ... } 和 $doc.reference
我遇到以下问题:使用 distinct 时无法限制结果数。例子: $stores = $this->dm->createQueryBuilder('Application\Document\Item'
我开始编写 Doctrine 2 Mongo ODM 单元测试,但意识到我的代码中没有好的策略来执行此操作。我想运行测试并实际保留对象,但我希望允许在拆解中轻松删除我的测试数据。集合和数据库名称必须根
我想知道是否可以在 phalcon ODM 中进行批量删除(使用单个操作),而不是通过“delete()”方法获取文档并在循环中一个一个地删除它们? 我需要这样的东西: $db->users->rem
我已经按照 中的描述设置了一个类 http://www.doctrine-project.org/docs/mongodb_odm/1.0/en/reference/geospatial-querie
这可能是一个愚蠢的问题,但我正在努力在 mongoDB 文档中保存一个大数字。 基本上,我想保存一个可以大于 max int 值的数字。因此,我将我的文档字段声明为 @Field(type="floa
我一直在尝试减少 Web API 上的数据库查询数量。我的数据库有 3 个集合:playground、widget、token 一个 Playground 有很多小部件,一个小部件有一个 token
我一直收到这个错误: PHP Fatal error: Uncaught exception 'Doctrine\Common\Annotations\AnnotationException' wit
我正在 koajs 中构建一个样板应用程序供以后使用。我无法决定是否应该使用 ODM。我可以使用 ES6 类定义我的模式,即使我使用像 mongoose 这样的东西,我也可能最终会编写大量自定义验证器
继续我关于 EAV 的问题,我正在考虑使用MongoDB来存储产品属性。 我将使用 MongoDB(或其他文档数据库)存储此应用程序的目录部分 - 类别、产品及其所有相关信息。 我的问题是,当使用 O
我将如何在学说 odm 中模拟 SQL 中的 like 运算符? 用例:我想在变量 $search 的字段标题字符串中找到一个主题。 查询会是什么样子? 感谢所有回答 最佳答案 使用 MongoReg
我有一个关于(顺便说一句真的很棒!)Doctrine ODM 的简单问题。 假设您有这样的文档: /** * @Document */ class Test { /** @Id */
我想知道是否有相当于 MySQL-Query 的: SELECT COUNT(*) FROM users 在 MongoDB ODM 中? 这可能有效: $qb = $this->dm->cre
我是一名优秀的程序员,十分优秀!