【问题标题】:Doctrine 1.2: Adding validation method to record templateDoctrine 1.2:向记录模板添加验证方法
【发布时间】:2026-02-16 17:25:01
【问题描述】:

在 Doctrine Record 对象中,我可以添加以下方法来验证数据:

protected function validate()
{
    if (empty($this->first_name) && empty($this->last_name) && empty($this->company)) {
        $this->getErrorStack()->add('company', 'You must fill in at least one of the following: First Name, Last Name, Company');
    }
}

如何向附加的模板对象添加类似的代码?

【问题讨论】:

  • 不明白。你能提供更多关于你想要做什么的信息吗?
  • @Timo,Doctrine 有行为。使用行为,我可以为多个模型分配功能。如何在行为中包含验证?如果您仍然不明白,请告诉我。另外,不明白的部分请详细说明。

标签: validation model doctrine behavior doctrine-1.2


【解决方案1】:

我也试过了,但是好像不能在行为课上做。为了避免这种情况,我在 preValidate 方法中放置了检查附加列的代码。

我建议您不要更改 validate() 方法,而是使用 preValidate($event) 和 postValidate($event) 公共方法。它应该看起来像:

public function preValidate(Doctrine_Event $event)
{
   ... your custom validation logic...
   parent::preValidate($event) ;
}

【讨论】:

  • 我一定会检查一下,谢谢!以为这个问题会无人回答。