0

我可以问一个澄清吗?在我使用的文件顶部(Silex 上下文):
use Symfony\Component\Validator\Constraints as Assert;

假设我有一个$asserts将断言名称作为字符串的数组:

'Assert\\NotBlank()', 'Assert\\Date()'

当我试图

foreach($asserts as $constraint) {
  array_push($some_other_array, new $constraint)
}

我得到Class Assert\NotBlank() not found,但是当我明确地创建新实例时

foreach($asserts as $constraint) { 
  array_push($some_other_array, new Assert\NotBlank())
}

一切正常。我究竟做错了什么?

编辑:我尝试使用和不使用() 以及使用课程的完整路径。

解决方案:应使用不带括号的完整路径数组。

'Symfony\Component\Validator\Constraints\NotBlank',
'Symfony\Component\Validator\Constraints\Date'

最好的问候,
卡米尔

4

1 回答 1

0

尝试以下数组:

'Assert\\NotBlank', 'Assert\\Date'

和:

array_push($some_other_array, new $constraint());

Per:php中的动态类名

于 2013-12-08T17:52:31.817 回答