1

我想验证一个实体,但不知道执行此操作的最佳位置。我将验证代码放在 setter 方法中。如果我选择Symfony\Component\Validator验证,如何访问验证器服务?据我所知,这意味着对服务存在依赖性。

$app['validator']->validateValue($title, new Assert\NotBlank());

而且我认为向实体类注入依赖不是一个好方法,对吧?如果是这样,您如何进行此验证?

<?php
// AnExample/Entity/Book.php
namespace AnExample;

class Book
{
  private $isbn;
  private $title; // at leats 3 letters

  public function __set($name, $value) {
   ...
  }

  public function __get($name) {
   ...
  }

}
?>

从技术上讲,有很多方法,但我正在寻找的是传统的方法,一种解决这个问题的设计模式。

4

1 回答 1

0

如果您想保持轻松,一种解决方案可能是使用静态loadValidatorMetadata方法。你可以在这里阅读更多。

于 2013-09-22T20:10:23.610 回答