gpt4 book ai didi

Symfony2 Doctrine ODM 嵌入类表单验证

转载 作者:行者123 更新时间:2023-12-05 00:34:35 26 4
gpt4 key购买 nike

我有一个已经变成表格的 Doctrine mongodb 文档。该文档有两个 emebedOne 文档,它们也在表单中。正在验证主文档,但未验证嵌入文档。我正在使用自定义断言,但我认为这并不重要。

文档

类帐户记录{
/**
* @MongoDB\ID
*/
私有(private) $id;

/**
* @MongoDB\Field(type="BimcoreEmail")
* @Assert\电子邮件
* @Assert\NotNull
* @CustomAssert\BimcoreEmail
*/
私有(private)$电子邮件;

/**
* 访问管理员
*
* @MongoDB\ bool
*/
私有(private) $access_admin = 0;

/** @MongoDB\EmbedOne(targetDocument="vidAccountSettings") */
私有(private) $vid;
}

嵌入类的自定义断言永远不会被调用。

/** @MongoDB\EmbeddedDocument */
类 vidAccountSettings {
/**
* 分享部分路径
*
*
* @MongoDB\Field(type="Url")
* @CustomAssert\Url
*/
私有(private) $sharePath;
}

形式

类 AccountEditFormType 扩展 AbstractType
{
/**
* 构建代表用户的嵌入表单。
*
* @param FormBuilder $builder
* @param 数组 $options
*/
公共(public)函数 buildForm(FormBuilder $builder, array $options){
$ builder
->添加('前缀','隐藏',数组('必需' => false))
->add('vid.access', 'checkbox', array('required' => false))
->add('vid.googleAnalytics', 'text', 数组('required' => false))
->add('vid.liveRail', 'text', 数组('required' => false))
->add('vid.sharePath', 'url', 数组('required' => false))
;
}

公共(public)函数 getDefaultOptions(数组 $options)
{
返回数组(
'意图' => 'editAccount',
'cascade_validation' => 真,
);
}

公共(public)函数 getName()
{
返回“bimfs_account_creation”;
}

}

处理程序

类 AccountEditFormHandler
{
protected $请求;
protected $userManager;
protected $form;

公共(public)函数 __construct(Form $form, Request $request, BimcoreAccountManager $accountManager)
{
$this->form = $form;
$this->request = $request;
$this->accountManager = $accountManager;
}

公共(public)功能流程($account)
{
//为当前账户设置表单中的数据。
$this->form->setData($account);

if ('POST' === $this->request->getMethod()) {

$this->form->bindRequest($this->request);
if ($this->form->isValid()) {
$this->onSuccess($account);
返回真;
} 别的 {
}
}

返回假;
}

protected 功能 onSuccess(BimcoreAccountRecord $account)
{
//更新账户数据。
$this->accountManager->updateAccount($account);
}
}

谢谢您的帮助。

科里

最佳答案

好的,我想通了,您需要在要验证的嵌入的记录中设置一个断言有效语句。

/** @MongoDB\EmbedOne(targetDocument="vidAccountSettings")
* @Assert\有效
*/
私有(private) $vid;

关于Symfony2 Doctrine ODM 嵌入类表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com