我有一个mongodb文档,我已经把它变成了一个表单。该文档有两个emebedOne文档,它们也是表单。正在验证主文档,但未验证嵌入文档。我正在使用自定义断言,但我认为这不重要。
文档
class AccountRecord{ /** * @MongoDB\Id */ private $id; /** * @MongoDB\Field(type="BimcoreEmail") * @Assert\Email * @Assert\NotNull * @CustomAssert\BimcoreEmail */ private $email; /** * Access Admin * * @MongoDB\Boolean */ private $access_admin = 0; /** @MongoDB\EmbedOne(targetDocument="vidAccountSettings") */ private $vid; }
嵌入式类对此的自定义断言永远不会调用。
/** @MongoDB\EmbeddedDocument */ class vidAccountSettings { /** * Share section path * * * @MongoDB\Field(type="Url") * @CustomAssert\Url */ private $sharePath; }
形式
class AccountEditFormType extends AbstractType { /** * Builds the embedded form representing the user. * * @param FormBuilder $builder * @param array $options */ public function buildForm(FormBuilder $builder, array $options){ $builder ->add('prefix', 'hidden', array('required' => false)) ->add('vid.access', 'checkbox', array('required' => false)) ->add('vid.googleAnalytics', 'text', array('required' => false)) ->add('vid.liveRail', 'text', array('required' => false)) ->add('vid.sharePath', 'url', array('required' => false)) ; } public function getDefaultOptions(array $options) { return array( 'intention' => 'editAccount', 'cascade_validation' => true, ); } public function getName() { return 'bimfs_account_creation'; } }
处理程序
class AccountEditFormHandler { protected $request; protected $userManager; protected $form; public function __construct(Form $form, Request $request, BimcoreAccountManager $accountManager) { $this->form = $form; $this->request = $request; $this->accountManager = $accountManager; } public function process($account) { // set the data in the form for the current account. $this->form->setData($account); if ('POST' === $this->request->getMethod()) { $this->form->bindRequest($this->request); if ($this->form->isValid()) { $this->onSuccess($account); return true; } else { } } return false; } protected function onSuccess(BimcoreAccountRecord $account) { // update the account data. $this->accountManager->updateAccount($account); } }
谢谢你的帮助。
科里
好的,我已经解决了这个问题,您需要在记录中为要验证的嵌入设置一个assert-valid语句。
/** @MongoDB\EmbedOne(targetDocument="vidAccountSettings") * @Assert\Valid */ private $vid;
只使用一个集合很好,但是我需要编辑外部窗体的原型,所以它为每一行呈现内部窗体的原型。 你知道我该怎么做吗?还有什么是最好的储蓄方式 编辑:现在我正在尝试呈现嵌套窗体的原型: 促销特征选择类型 第一级原型,工作很好。
有没有人在使用doctrine Embeddebles和symfony表单时遇到过这个问题? 如果你不知道可嵌入原则是什么,你可以在这里阅读http://doctrine-orm.readthedocs.org/en/latest/tutorials/embeddables.html 在表单提交时(在持久化到DB的过程中)将value对象(在我的情况下是CategoryType)与symfony表
如何覆盖symfony2中的表单验证消息。虽然有一个验证。与xml文件相关的模型类。我认为它验证了一个基于html5的表单。 “请匹配要求的格式”,“请填写此字段”。是否有任何方法覆盖此验证消息。 请在这方面帮助我,我被困了一天多,因为我对symfony是全新的
问题内容: 如何使用in 将 属性设置为表单? 像这样: 我希望属性设置为 日历的 此字段 __ 问题答案: 您可以从树枝模板执行此操作:
我正在尝试使用yml格式将列添加到现有表中。将新列条目添加到.yml文件中,并运行命令生成实体 通过运行该命令,得到一个错误 这是我的yml文件:
CodeIgniter 提供了一个全面的表单验证和数据预处理类可以帮你少写很多代码。 Page Contents 表单验证类 概述 表单验证指南 表单 成功页面 控制器 试一下! 解释 设置验证规则 使用数组来设置验证规则 级联规则(Cascading Rules) 预处理数据 重新填充表单 回调:你自己的验证函数 使用任何可调用的方法作为验证规则 设置错误信息 翻译表单域名称 更改错误定界符 单