【发布时间】:2015-05-16 05:38:34
【问题描述】:
谁能帮我弄清楚为什么我的回调验证方法没有被调用。
基本上我需要做的是具有以下逻辑的自定义验证: - 在表格中,我有 5 个字段,如果全部为空,则表格应该是有效的, - 但是,如果其中任何一个不为空,则所有这些都不需要为空 (它们用于在用户个人资料上建立真实地址)
我关注了来自http://symfony.com/doc/2.3/reference/constraints/Callback.html的文档
我有以下代码:
/**
* User
*
* @ORM\Table(name="user")
* @ORM\Entity(repositoryClass="UserRepository");
* @UniqueEntity("email")
* @ORM\HasLifecycleCallbacks
* @Assert\Callback(methods={"isAddressValid"})
*/
class User extends WebserviceUser implements UserInterface, EquatableInterface
{
...
public function isAddressValid(ExecutionContextInterface $context)
{
//die("I GOT HERE");
$context->addViolationAt('sna4', 'Frikin validation'!', array(), null);
}
}
属性 sna4 在被扩展的类中找到。
提前谢谢你。
【问题讨论】:
-
您是否在控制器中调用了 isValid() ?来自您的控制器的代码会有所帮助!
-
检查您是否为
ExecutionContextInterface类添加了use语句 -
@Matteo.....我确认包括使用
-
@PMoubed...是的,我已经调用了 isValid
codeif ($form->isSubmitted() && $form->isValid())code -
表单有validation_groups?
标签: validation symfony assert