我想要限制字段action
中的值。在此字段中只能存储预定义的字符串。 @Assert\Choice(callback="getActions")
仅适用于表单生成器吗?
还有另一种检查允许值的方法吗?
class Log
{
const SENT_REGISTRATION_EMAIL = 'Registration email was sent';
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="text", length=50)
* @Assert\Choice(callback="getActions")
*/
private $action;
.
.
.
/**
*
* @return string[]
*/
public static function getActions(): array
{
return [self::SENT_REGISTRATION_EMAIL];
}
}
$log = new Log();
$log->setAction(Log::SENT_REGISTRATION_EMAIL);
$this->em->persist($log);
$this->em->flush();
答案 0 :(得分:0)
这可能是最好的方法,但是在formType中,您可以在options数组中使用“约束”(在字段名和propertyType之后)。
这是一个例子:
['constraints' => [
new NotBlank([
'message' => 'Please choose a password.',
]),
]],